随机替换 JavaScript 或 jQuery 中文本块中的子字符串

randomly replace a substring in a block of text in javascript or jquery

本文关键字:字符串 文本 中文 替换 JavaScript jQuery 随机      更新时间:2023-09-26

如何使用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>
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

然后,您必须再次匹配它并增加一个计数器,该计数器将用于知道哪个匹配是当前的匹配项。

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

演示