207

这不起作用,我非常需要它

$('some+multi+word+string').replace('+', ' ' );

总是得到

some multi+word+string

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

4

3 回答 3

422

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

var s = 'some+multi+word+string'.replace(/\+/g, ' ');

(我删除了$()字符串周围的,因为replace它不是 jQuery 方法,所以根本不起作用。)

于 2012-11-26T23:31:36.760 回答
47
'some+multi+word+string'.replace(/\+/g, ' ');
                                   ^^^^^^

'g' = “全球”

干杯

于 2012-11-26T23:31:43.523 回答
9

在大多数情况下,RegEx 是要走的路。

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

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

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

于 2013-09-19T19:42:45.940 回答