web-dev-qa-db-ja.com

jQuery - 文字列内の文字のすべてのインスタンスを置き換える

これはうまくいきませんし、ひどく必要です

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

つねに

some multi+Word+string

それは常に最初のインスタンスのためだけに置き換えられます、しかし私はすべての+シンボルのために働くためにそれが必要です。

175
thednp

Global(g)フラグを指定できるように、正規表現を使う必要があります。

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

replaceはjQueryメソッドではないので、文字列の周囲の$()を削除しました。これはまったく機能しません。)

364
Guffa
'some+multi+Word+string'.replace(/\+/g, ' ');
                                   ^^^^^^

'g' = "グローバル"

乾杯

34
Madbreaks

RegExはほとんどの場合に使用する方法です。

場合によっては、置換を実行するためにより多くの要素または特定の要素を指定する方が速い場合があります。

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

これは各文字列に対して一度だけ置き換えを行いますが、より具体的なセレクタを使って行います。

6
phyatt