js split()使用正则表达式,匹配了什么表达式

时间:2014-07-25 18:46:28

标签: javascript regex split

当使用正则表达式作为split()中的分隔符时,有没有办法知道它匹配的是什么字符串?

示例:

var
    string     = "12+34-12",
    numberlist = split(/[^0-9]/); 

我怎么知道它是否找到+-

2 个答案:

答案 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' ]

由于您正在捕获拆分正则表达式,因此它也将是结果数组的一部分。