Open1
String.spiit() のアドバンスドな使い方 (正規表現)
String.split() のインターフェイス
str.split([separator[, limit]])
今回は separator
に正規表現を与えた場合のケースに発見があった。
知ってた使い方
const myString = 'a,b,c'
const splits = myString.split(",")
console.log(splits) // => ["a","b","c"]
当然かもしれないが、 separator
に指定した ','
は splits
の 要素に含まれない。
しかし、separator
を含んで分割をしたいというケースもある。
それが以下で記述する解決手段だ。
初めて知った正規表現を使うケース
const myString = 'Hello 1 word. Sentence number 2.'
const splits = myString.split(/(\d)/)
console.log(splits) // => [ "Hello ", "1", " word. Sentence number ", "2", "." ]
正規表現において(...)
はグループ化と呼ばれる記法だが、これを用いてstr.split()
をつかうと、separator
を含んだ(今回だと数字)配列を得れる。
やや直感的ではない挙動だが、便利な結果を得れる。
ちなみにグループ化をしないと 結果は以下だ。上記セクションと似たような挙動となる
const myString = 'Hello 1 word. Sentence number 2.'
const splits = myString.split(/\d/)
console.log(splits) // => ['Hello ', ' word. Sentence number ', '.']
参考