Как заменить все вхождения / в строке на _ в JavaScript?

По какой-то причине метод "".replace() заменяет только первое вхождение, а не остальные. Любые идеи?


person illuminatedtiger    schedule 29.01.2010    source источник


Ответы (4)


Вы должны использовать модификатор g (для глобального) в вызове замены.

str = str.replace(/searchString/g, "replaceWith")

В вашем конкретном случае это будет:

str = str.replace (/\//g, "_");

Обратите внимание, что вы должны экранировать / в регулярном выражении.

person Cheryl Simon    schedule 29.01.2010
comment
Вам также может понадобиться опция m для многострочной строки. - person Eric Wendelin; 29.01.2010
comment
Чтобы было понятнее для данной проблемы: str = str.replace (/\//g, "_"); - person Thomas Eding; 29.01.2010
comment
Как только ваша проблема будет решена, вы должны отметить ее как решенную :) - person Cheryl Simon; 29.01.2010
comment
@illuminatedtiger: Нет, правда. Вы должны пометить его как ответ. - person Lightness Races in Orbit; 15.06.2011

"Your/string".split("/").join("_")

если вам не нужны возможности RegExp

person meouw    schedule 29.01.2010

Попробуйте этот код:

 text = text.replace(new RegExp("textToReplace","g"), "replacemntText")); 
person Owen    schedule 15.05.2013

person    schedule
comment
Интересно, что этот ответ содержит те же умные кавычки Microsoft, что и изначально в ответе Майры. - person Lightness Races in Orbit; 15.06.2011
comment
спас положение, амиго - person sg28; 07.03.2019