正则表达式不适用于整个字符串

时间:2013-08-05 03:51:22

标签: javascript jquery regex

以下正则表达式

var str = "1234,john smith,jack jone";
var match = str.match(/([^,]*,[^,]*,[^ ]*)/g);
alert(match);

返回

1234,john smith,jack

但我想要的是整个字符串

1234,john smith,jack jones

基本上我的脚本只为逗号之间的第一个空格完成工作,但我想在每次逗号之间都有空格时这样做。

任何人都可以帮我解决。

2 个答案:

答案 0 :(得分:4)

您的模式会从最后一个部分中排除空格,因此只要它在第三个逗号后面遇到一个空格,那就是匹配的结束。您可能想尝试这样做:

var match = str.match(/[^,]*,[^,]*,.*/g);

这将允许在第二个逗号之后的任何内容,包括空格或更多逗号(因为您的原始模式在第二个逗号之后允许使用逗号)。

如果您只想匹配单个模式,请使用开始/结束定位符(^ / $)以及多行标记(m),就像我们一样这个:

var match = str.match(/^[^,]*,[^,]*,.*$/mg);

您可以使用this simple demo进行试用。

答案 1 :(得分:0)

为什么你不使用拆分?

"1234,john smith,jack jone".split(/,/)

"1234,john smith,jack jone".split(",")