JQuery - заменить все экземпляры символа в строке
Это не работает, и мне это нужно плохо
$('some+multi+word+string').replace('+', ' ' );
всегда получает
some multi+word+string
он всегда заменяет только для первого экземпляра, но мне нужно, чтобы он работал для всех символов +.
Ответы
Ответ 1
Вам нужно использовать регулярное выражение, чтобы вы могли указать глобальный (g) флаг:
var s = 'some+multi+word+string'.replace(/\+/g, ' ');
(я удалил $()
вокруг строки, так как replace
не является методом jQuery, поэтому он не будет работать вообще.)
Ответ 2
'some+multi+word+string'.replace(/\+/g, ' ');
^^^^^^
'g' = "global"
Приветствия
Ответ 3
RegEx - это способ пойти в большинстве случаев.
В некоторых случаях может быть быстрее указать больше элементов или конкретного элемента для выполнения замены:
$(document).ready(function () {
$('.myclass').each(function () {
$('img').each(function () {
$(this).attr('src', $(this).attr('src').replace('_s.jpg', '_n.jpg'));
})
})
});
Это заменяет один раз на каждую строку, но делает это с использованием более конкретного селектора.