JavaScript 字串 split 保留分隔字

前言

在字串處理時,很常使用到 regular expression 來切割字串
在有些情況下,我們會希望保留分隔字,但split並沒有提供這樣的功能
可以透過在 regular expression 中使用增加()來達成

作法

比如要分隔 1、2、3,但希望保留分隔字

"1、2、3".split(/(、)/); // ["1", "、", "2", "、", "3"]

其他參考範例

"1、2、3".split("、") == ["1", "2", "3"]
"1、2、3".split(/(、)/) == ["1", "、", "2", "、", "3"]
"1、2、3".split(/(?=、)/g) == ["1", "、2", "、3"]
"1、2、3".split(/(?!、)/g) == ["1、", "2、", "3"]
"1、2、3".split(/(.*?、)/g) == ["", "1、", "", "2、", "3"]

參考資料

stack overflow / Javascript and regex: split string and keep the separator