繁体   English   中英

在javascript或jquery中的文本块中随机替换子字符串

[英]randomly replace a substring in a block of text in javascript or jquery

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

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

我只想随机将1个'foo'替换为'buz',所以可能的结果是:

<p>buz bar foo baz foo</p>
<p>foo bar buz baz foo</p>
<p>foo bar foo baz buz</p>
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

然后,您必须再次对其进行匹配,并增加一个计数器,该计数器将用于了解当前的匹配项。

如果当前匹配项等于随机数,则必须替换文本。

演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM