gpt4 book ai didi

javascript - 搜索价格文本,执行功能,并替换为输出

转载 作者:可可西里 更新时间:2023-11-01 02:19:54 24 4
gpt4 key购买 nike

我希望能够在给定页面上找到与正则表达式匹配的价格文本,对其执行函数,然后替换输出。

示例:

<div>The total is $12</div>
  1. RegEx 匹配 $12 的价格文本
  2. 将 12 乘以 2 = 24
  3. 用 24 替换 12

变成:<div>The total is $24</div>

这是一个JSFiddle with my test code (请确保引用我上面的问题以了解我所追求的,谢谢!)

这是 regEx I am using

最佳答案

首先,您的正则表达式存在缺陷。它可以固定和简化为:

/\$([\d,]+(?:\.\d+)?)/g

它的设计使得第一个捕获组将是没有美元符号的数字本身。它会找到一个可选的美元符号,后跟至少一位数字,然后是一个可选的句点,如果有句点,则再跟更多的数字。

然后,您可以在替换函数中使用它。要使其翻倍,您必须传递一个函数作为执行该翻倍的第二个参数。这看起来像这样:

pageText.replace(/\$([\d,]+(?:\.\d+)?)/g,
function (string, c1) {
//If there are commas, get rid of them and record they were there
var comma = c1.indexOf(',') != -1;
c1 = c1.replace(/,/g, '');
//Parse and double
var value = '' + (parseFloat(c1) * 2);
//Reinsert commas if they were there before
if (comma) {
var split = value.split(".");
value = split[0].replace(/(\d)(?=(\d{3})+$)/g, "$1,");
if(split.length > 1)
value += "."+split[1];
}
//Return with dollar sign prepended
return '$' + value;
});

c1 是第一个捕获组,它只是没有美元符号的数字。它被解析为一个 float ,然后加倍。如果原始字符串中有美元符号,则在该数字前面放置一个美元符号。如果有逗号,则必须将其删除并在数字加倍后重新添加。所有这一切之后,它全部返回。

这是一个 jsfiddle 示例,因此您可以看到它的实际效果:http://jsfiddle.net/dB8bK/49/

关于javascript - 搜索价格文本,执行功能,并替换为输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22138644/

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