Функция RegExp не работает с чередованием - PullRequest
1 голос
/ 14 ноября 2010
string=string.replace(RegExp(filter[a]+" | "+filter[a],"g"),filter[a])

По какой-то причине это не влияет как на фильтр, за которым следуют пробел, так и на фильтр с пробелом впереди.Предполагая, что фильтр равен «,», он занял бы вторую сторону и заменил бы только «,» вместо «,» и «,».Фильтр определяется пользователем, поэтому я не могу использовать обычное регулярное выражение (которое работает), например string=string.replace(/, | ,/g,filter[a]) Может кто-нибудь объяснить мне, почему он не работает и как заставить его работать?

1 Ответ

0 голосов
/ 14 ноября 2010

у меня работает:

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

Помните, что ваше регулярное выражение не заменит " , " на ",". Вы можете попробовать использовать это вместо:

" ?" + filter[a] + " ?"
...