以下正则表达式
var str = "1234,john smith,jack jone";
var match = str.match(/([^,]*,[^,]*,[^ ]*)/g);
alert(match);
返回
1234,john smith,jack
但我想要的是整个字符串
1234,john smith,jack jones
基本上我的脚本只为逗号之间的第一个空格完成工作,但我想在每次逗号之间都有空格时这样做。
任何人都可以帮我解决。
答案 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(",")