当使用正则表达式作为split()
中的分隔符时,有没有办法知道它匹配的是什么字符串?
示例:
var
string = "12+34-12",
numberlist = split(/[^0-9]/);
我怎么知道它是否找到+
或-
?
答案 0 :(得分:4)
您可以使用捕获组来捕获String#split
中使用的字符串:
var m = string.split(/(\D)/);
//=> ["12", "+", "34", "-", "12"]
要看到这里的区别是没有捕获组的输出:
var m = string.split(/\D/);
//=> ["12", "34", "12"]
PS:我已将[^0-9]
的使用更改为\D
,因为它们是等效的。
答案 1 :(得分:3)
只需捕获分裂正则表达式,如
numberlist = string.split(/([^0-9])/);
,输出将是
[ '12', '+', '34', '-', '12' ]
由于您正在捕获拆分正则表达式,因此它也将是结果数组的一部分。