JavaScript .replace только заменяет первое Соответствие

var textTitle = "this is a test"
var result = textTitle.replace(' ', '%20');

Но замена функционирует остановки в первой инстанции, "" и я добираюсь

Результат: "this%20is a test"

Любые идеи о том, где я иду не так, как надо, я уверен, что это - простая фиксация.

110
задан Nick Craver 9 July 2010 в 17:07
поделиться

5 ответов

Вам понадобится / g , например:

 var textTitle = "это тест"; var result = textTitle.replace (/ / g, '% 20'); console.log (result); 

Вы можете поиграть с ним здесь , поведение по умолчанию .replace () - заменить только первое совпадение, / g модификатор (глобальный) указывает ему заменить все вхождения.

207
ответ дан 24 November 2019 в 03:13
поделиться
textTitle.replace(/ /g, '%20');
7
ответ дан 24 November 2019 в 03:13
поделиться

Попробуйте использовать replaceWith () или replaceAll ()

http://api.jquery.com/replaceAll/

-5
ответ дан 24 November 2019 в 03:13
поделиться

Из w3schools

Метод replace() ищет совпадение между подстрокой (или регулярным выражением) и строкой и заменяет совпавшую подстроку новой

Тогда лучше использовать regex:

textTitle.replace(/ /g, '%20');
2
ответ дан 24 November 2019 в 03:13
поделиться

Попробуйте использовать regex вместо строки для первого аргумента.

"this is a test".replace(/ /g,'%20') // #=> "this%20is%20a%20test"

4
ответ дан 24 November 2019 в 03:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: