2010-11-13 78 views
1
string=string.replace(RegExp(filter[a]+" | "+filter[a],"g"),filter[a]) 

由于某种原因,这不影响前面带空格的过滤器和空格过滤器。假设过滤器是“,”,它将采取第二方面,只取代“,”而不是“,”和“,”。该过滤器是用户指定的,所以我不能使用一个正常的正则表达式(它工作),如string=string.replace(/, | ,/g,filter[a]) 有人可以向我解释为什么它不工作,以及如何使它工作?RegExp功能不能与替换功能配合使用

+0

您能提供一个简短但完整的可运行示例,我们可以使用它重现您收到的错误?请确保您引用的所有变量都在示例代码中定义,以便我们可以在不需要修改的情况下运行它。 – 2010-11-13 22:20:34

回答

0

它为我的作品:

s = 'abc, def,ghi ,klm' 
a = ',' 
s = s.replace(RegExp(a + " | " + a, "g"), a) 
"abc,def,ghi,klm" 

请记住,你的正则表达式不会","取代" , "。您可以尝试使用它来代替:

" ?" + filter[a] + " ?" 
+0

令人敬畏的家伙,它的工作。你能解释一下吗? – Anonymous 2010-11-13 23:20:09