随机替换 JavaScript 或 jQuery 中文本块中的子字符串
randomly replace a substring in a block of text in javascript or jquery
如何使用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
。
然后,您必须再次匹配它并增加一个计数器,该计数器将用于知道哪个匹配是当前的匹配项。
如果当前匹配等于随机数,我们必须替换文本。
演示
相关文章:
- JSON解析字符串文本中的双引号
- 未将字符串文本附加到DOM
- jQuery替换多次出现的子字符串/文本
- 未终止的字符串文本问题
- 以字符串形式内化字符串文本
- MVC - 处理新行的未终止字符串文本
- 如何取消转义 JavaScript 字符串文本值
- 未终止的字符串文本,不换行
- 未终止的字符串文本/无效或意外的令牌
- 当您将字符串文本传递给变量,然后将该字符串中的数据分配给新变量时,它叫什么
- 在Javascript中将字符串文本提取为常量是一种最佳实践吗
- 如何将二进制数据从binaryjs转换为字符串/文本
- 在Javascript字符串文本中解释HTML标记
- Selenium IDE在字符串文本中提供了SyntaxError:JSON.parse:错误的控制字符
- 聚合物元素未在字符串/文本中的聚合物中注册
- 语法错误未终止字符串文本jquery
- 为什么大多数语言在字符串文本中使用双引号而不是单引号
- 如何使用jquery在span中显示多行字符串文本?
- 使用javascript存储动态内容时,未终止字符串文本错误
- 奇怪的未终止字符串文本错误与Firefox