示例:
"div#qwe.%class-first.class-two".split(/([#\.%])/)
["div", "#", "qwe", ".", "", "%", "class-first", ".", "class-two"]
Cell 4为空。如何使用正则表达式摆脱这种情况?
UPD#1 我认为match
很慢,但事实并非如此。我的小测试:
Match: 5
Filter: 15
Split: 11
Big match: 3092
Big filter: 7115
Big split: 2925
答案 0 :(得分:4)
使用match
:
> "div#qwe.%class-first.class-two".match(/[#.%]|[^#.%]+/g)
["div", "#", "qwe", ".", "%", "class-first", ".", "class-two"]
您无需在.
内转义[]
。
答案 1 :(得分:0)
我认为你不能将一个正则表达式提供给.split()
,因为你的输入数据连续有两个分隔符,但是其他正则表达式函数可以这样做,或者你可以{{ 3}}结果:
"div#qwe.%class-first.class-two".split(/([#\.%])/).filter(function(v){return v != "";})