gpt4 book ai didi

javascript - 检索正则表达式匹配组值

转载 作者:行者123 更新时间:2023-11-30 00:29:39 25 4
gpt4 key购买 nike

这是脚本;:

var output = []
output = this.getField("SelectedSoftware").value.match(/\$(\d{1,4}\.\d\d)/g);

字段中的示例文本:

Automate、Audition(500.00 美元)、Citrix Receiver、AutoCAD(54.93 美元)、Clarity Studio(748.23 美元)、Audacity(300.00 美元)、Audition(500.00 美元)、Business Objects Dashboard、Audition(500.00 美元)

我遇到的问题是只获取成本数字,以便将它们加在一起以显示总计。 (?<=\$)似乎不起作用。所以我将其余的表达式分组在括号中。但是,我不确定如何获取这些组值而不是完整匹配项。

最佳答案

RegExp.exec(string) 应该很有帮助。事实上,这是从字符串中获取捕获组的唯一方法。虽然实现有点困难,因为 .exec() 只返回一个结果。

示例代码:

var regex = /\$(\d{1,4}\.\d\d)/g,
text = this.getField("SelectedSoftware").value,
prices = [],
total = 0,
num;

// Assignments always return the value that is assigned.
// .exec will return null if no matches are found.
while((val = regex.exec(text)) !== null){
// Capture groups are referenced with 'val[x]', where x is the capture group number.
num = parseFloat(val[1]);
total += num;
prices.push(num);
}

Here's a fiddle.

这是有效的,因为 RegExp 对象有一个名为 .lastIndex 的属性,它是下一个 .exec() 搜索的基础。

您可以 read more about .exec() on the MDN .

关于javascript - 检索正则表达式匹配组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30107533/

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