我找不到使用分隔符字符串拆分字符串的好方法,但是将分隔符保留为结果数组的每个元素的前缀:
从
var s = 'blah0__blah1__blah2';
我需要得到
['blah0', '__blah1', '__blah2']
我能得到的最接近的东西是
s.split(/(__)/);
哪个返回
['blah0', '__', 'blah1', '__', 'blah2']
但这需要遍历以合并下划线。
有没有更好的办法?
编辑:
到目前为止,这是我最大的努力:
'blah__blah1__blah2'.split(/(__[^_]+)/)
// => ["blah", "__blah1", "", "__blah2", ""]
仍然,在输出中有空字符串...
这个怎么样:
var s = 'blah0__blah__blah'
var s_split = s.match(/(__)?(.(?!__))+./g)
console.log(s_split)
我敢肯定,这比在常规之后简单地重申和加入要花更多的钱(在时间和内存方面)split
。
如果您__
用分隔符替换它,则在大多数情况下应该可以正常工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句