gpt4 book ai didi

javascript - 如何在每次执行替换代码时获取随机数?

转载 作者:行者123 更新时间:2023-12-03 02:35:19 24 4
gpt4 key购买 nike

我正在编写一个 JavaScript 函数,该函数查看网页并用我创建的数组中的随机字符串替换价格的每个实例。每次我在网页上运行脚本时,都会从数组中选择不同的字符串,但它会为替换方法的每个实例选择相同的字符串。我怎样才能让每次替换选择一个随机数?实际上,我曾经一度可以使用此功能,但我必须更改代码,现在它重复相同的字符串。

这是我的代码:

$("*").each( function() { //go through each paragraph
var curr = $(this).html();

var price = Math.floor(Math.random() * pricesArray.length);
curr = curr.replace(/(\$[0-9]+\.[0-9]{2})+/g, pricesArray[price]);
console.log(curr);
$(this).html(curr); //update paragraph text
});

最佳答案

$('*')将匹配<html> , <body>等。第一个匹配项 ( <html> ) 将对页面中的所有价格执行替换,因为它们都包含在其中。假设随机字符串不是价格,仅此而已,无需替换。

您可以通过为每个匹配调用替换函数来实现此目的,而不是为每个节点选择一个新字符串:

var pricesArray = ['thing one', 'thing two', 'thing three', 'thing four'];

var text = document.body.innerHTML;

text = text.replace(/(\$[0-9]+\.[0-9]{2})+/g,
function() {
var repno = Math.floor(Math.random() * pricesArray.length);
return pricesArray[repno];
}
);

document.body.innerHTML = text;
<p>$5.99</p>
<p><b>$7.97</b></p>
<p>A price ($14.92) within some text, followed by another price ($17.76).</p>

关于javascript - 如何在每次执行替换代码时获取随机数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48553793/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com