jQuery - 替换字符串中所有字符的实例

the*_*dnp 184 string jquery replace

这不起作用,我需要它很糟糕

$('some+multi+word+string').replace('+', ' ' );
Run Code Online (Sandbox Code Playgroud)

永远得到

some multi+word+string
Run Code Online (Sandbox Code Playgroud)

它总是只替换第一个实例,但我需要它适用于所有+符号.

Guf*_*ffa 382

您需要使用正则表达式,以便指定global(g)标志:

var s = 'some+multi+word+string'.replace(/\+/g, ' ');
Run Code Online (Sandbox Code Playgroud)

(我删除了$()字符串,因为replace它不是jQuery方法,因此根本不起作用.)

  • 我们可以传递一个变量而不是固定字符串吗? (2认同)

Mad*_*aks 37

'some+multi+word+string'.replace(/\+/g, ' ');
                                   ^^^^^^
Run Code Online (Sandbox Code Playgroud)

'g'="全球"

干杯

  • 它深深地困扰着疯狂.在过去的4年里,睡眠并不容易,而@Madbreaks的思绪却因为它不起作用的想法而疯狂 - 另一个注意事项^ + 1 - 感谢在replace()函数中解释g (3认同)

phy*_*att 7

在大多数情况下,RegEx是最佳选择.

在某些情况下,指定更多元素或执行替换的特定元素可能更快:

$(document).ready(function () {
    $('.myclass').each(function () {
        $('img').each(function () {
            $(this).attr('src', $(this).attr('src').replace('_s.jpg', '_n.jpg'));
        })
    })
});
Run Code Online (Sandbox Code Playgroud)

这会在每个字符串上替换一次,但它使用更具体的选择器来完成.