0

javascriptまたはjqueryを使用してテキスト内の文字列をランダムに置き換えるにはどうすればよいですか?

与えられた:<p>foo bar foo baz foo</p>

'foo'の1つのオカレンスを'buz'にランダムに置き換えたいので、考えられる結果は次のようになります。

<p>buz bar foo baz foo</p>
<p>foo bar buz baz foo</p>
<p>foo bar foo baz buz</p>
4

1 に答える 1

3
var $element = $('p');
var string = 'foo';
var count = $element.text().match(string, 'g').length;

if(count) {
    var rand = Math.floor((Math.random() * count) + 1);
    $element.text(function(i, text) {
        var matchNumber = 0;
        return text.replace(new RegExp(string, 'g'), function(text) {
            matchNumber++;
            if(matchNumber == rand) {
                return 'buz';
            }
            return text;
        });
    });
}

説明
まず、までの範囲を知る必要がありrandomます。文字列に一致するものを取得してから、を取得できますlength

次に、もう一度一致させて、現在一致しているものを知るために使用されるカウンターを増やす必要があります。

現在の一致が乱数と等しい場合は、テキストを置き換える必要があります。

デモ

于 2012-08-17T22:01:32.473 に答える