コンテンツにスキップ

js split()で区切り文字を残す#

  let str = 'a1:b2:c3:d4:e5:f6::';
  console.log(str.split(':')); //普通
  // ["a1", "b2", "c3", "d4", "e5", "f6", "", ""]

  console.log(str.split(/[1-9]/g));//正規表現
  //["a", ":b", ":c", ":d", ":e", ":f", "::"]

  console.log(str.split(/(:)/g));//区切り文字も一つの要素として分割する
  //["a1", ":", "b2", ":", "c3", ":", "d4", ":", "e5", ":", "f6", ":", "", ":", ""]

  console.log(str.split(/(?<=:)/g));//区切り文字を直前の要素に含める
  //["a1:", "b2:", "c3:", "d4:", "e5:", "f6:", ":"]

  console.log(str.split(/(?=:)/g));//区切り文字を直後の要素に含める
  //["a1", ":b2", ":c3", ":d4", ":e5", ":f6", ":", ":"]