По какой-то причине метод "".replace() заменяет только первое вхождение, а не остальные. Любые идеи?
Как заменить все вхождения / в строке на _ в JavaScript?
Ответы (4)
Вы должны использовать модификатор g (для глобального) в вызове замены.
str = str.replace(/searchString/g, "replaceWith")
В вашем конкретном случае это будет:
str = str.replace (/\//g, "_");
Обратите внимание, что вы должны экранировать / в регулярном выражении.
person
Cheryl Simon
schedule
29.01.2010
Вам также может понадобиться опция m для многострочной строки.
- person Eric Wendelin; 29.01.2010
Чтобы было понятнее для данной проблемы:
str = str.replace (/\//g, "_");
- person Thomas Eding; 29.01.2010
Как только ваша проблема будет решена, вы должны отметить ее как решенную :)
- person Cheryl Simon; 29.01.2010
@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
Интересно, что этот ответ содержит те же умные кавычки Microsoft, что и изначально в ответе Майры.
- person Lightness Races in Orbit; 15.06.2011
спас положение, амиго
- person sg28; 07.03.2019