我有一个字符串有一个或多个{数字} _ {数字}组合(用逗号分隔),我想删除一个特定的组合。JS-RegEx不起作用
('6_4,6_5,6_6').replace('\d+_5(,|$)','');
,但如预期,我只是不明白为什么它不工作。 (在Firefox的JS控制台测试)
我有一个字符串有一个或多个{数字} _ {数字}组合(用逗号分隔),我想删除一个特定的组合。JS-RegEx不起作用
('6_4,6_5,6_6').replace('\d+_5(,|$)','');
,但如预期,我只是不明白为什么它不工作。 (在Firefox的JS控制台测试)
使用/.../
分隔符而不是'...'
,否则JavaScript会尝试匹配该字符串(不是你的表达式)。
'6_4,6_5,6_6'.replace(/\d+_5(,|$)/,'');
而且,在你的初始字符串的()
是不必要的(虽然没有造成任何问题)。
你正在告诉它来替换一个字符串。
.replace(/\d+_5/,'');
应该这样做。
因为您将正则表达式作为字符串传递,而不是正则表达式。尝试:
('6_4,6_5,6_6').replace(/\d+_5(,|$)/,'')
你需要使用正则表达式与语法/,而不是一个字符串
('6_4,6_5,6_6').replace(/\d+_5(,|$)/,'');
感谢您的帮助,伙计们!现在,还有一个额外的复杂因素,因为RegEx中的'5'包含在一个var中,需要以某种方式进入字符串。显而易见的方法'var str ='\ d + _'+ 5 +'(,| $)'; var rx = new RegExp(str); '6_4,6_5,6_6'.replace(rx,'');'不这样做。想法? – MBaas
好吧,明白了。 http://stackoverflow.com/questions/494035/how-do-you-pass-a-variable-to-a-regular-expression-javascript :) – MBaas