[英]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.