我如何使用 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>
我如何使用 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
.
然后你必须再次匹配它并增加一个计数器,用于知道哪个匹配是当前匹配。
如果当前匹配等于随机数,我们必须替换文本。