Функция RegExp не работает с чередованием

string=string.replace(RegExp(filter[a]+" | "+filter[a],"g"),filter[a])

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

1 ответ

Решение

Меня устраивает:

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

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

" ?" + filter[a] + " ?"
Другие вопросы по тегам