2014-05-20 54 views
0

我有一个字符串有一个或多个{数字} _ {数字}组合(用逗号分隔),我想删除一个特定的组合。JS-RegEx不起作用

('6_4,6_5,6_6').replace('\d+_5(,|$)','');

,但如预期,我只是不明白为什么它不工作。 (在Firefox的JS控制台测试)

+0

感谢您的帮助,伙计们!现在,还有一个额外的复杂因素,因为RegEx中的'5'包含在一个var中,需要以某种方式进入字符串。显而易见的方法'var str ='\ d + _'+ 5 +'(,| $)'; var rx = new RegExp(str); '6_4,6_5,6_6'.replace(rx,'');'不这样做。想法? – MBaas

+0

好吧,明白了。 http://stackoverflow.com/questions/494035/how-do-you-pass-a-variable-to-a-regular-expression-javascript :) – MBaas

回答

4

使用/.../分隔符而不是'...',否则JavaScript会尝试匹配该字符串(不是你的表达式)。

'6_4,6_5,6_6'.replace(/\d+_5(,|$)/,''); 

而且,在你的初始字符串的()是不必要的(虽然没有造成任何问题)。

2

你正在告诉它来替换一个字符串。

.replace(/\d+_5/,''); 

应该这样做。

2

因为您将正则表达式作为字符串传递,而不是正则表达式。尝试:

('6_4,6_5,6_6').replace(/\d+_5(,|$)/,'') 
2

你需要使用正则表达式与语法/,而不是一个字符串

('6_4,6_5,6_6').replace(/\d+_5(,|$)/,'');