1

例子:

"div#qwe.%class-first.class-two".split(/([#\.%])/)

["div", "#", "qwe", ".", "", "%", "class-first", ".", "class-two"]

单元格 4 为空。如何通过使用正则表达式来摆脱这种情况?


UPD #1我认为这match很慢,但事实并非如此。我的小测试:

Match: 5
Filter: 15
Split: 11
Big match: 3092
Big filter: 7115
Big split: 2925
4

2 回答 2

4

使用match

> "div#qwe.%class-first.class-two".match(/[#.%]|[^#.%]+/g)
["div", "#", "qwe", ".", "%", "class-first", ".", "class-two"]

你不需要在.里面逃跑[]

于 2013-08-10T04:08:31.960 回答
0

.split()鉴于您的输入数据连续有两个分隔符,我认为您不能使用要提供给的单个正则表达式来做到这一点,但是其他正则表达式函数可以做到这一点,或者您可以.filter()得到结果:

"div#qwe.%class-first.class-two".split(/([#\.%])/).filter(function(v){return v != "";})
于 2013-08-10T04:07:15.707 回答