0

我如何使用 javascript 或 jquery 随机替换文本中的字符串?

给定:<p>foo bar foo baz foo</p>

我想用 'buz' 随机替换 1 次出现的 'foo',所以可能的结果是:

<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 回答