我想找到并匹配给定文本中的货币。接受的格式是:
到目前为止这是我的正则表达式:
var money_vals = $('body').text().match(/\$\d+\.?\d+(\,\d+)?(thousand|million|billion|trillion)?/g);
然而,它不符合20亿美元或6.25亿美元或任何价值,其次是百万/亿/万亿。 此外,在我的文本中的一个段落中添加5美元后,我意识到它没有匹配。
有人可以帮忙吗?
答案 0 :(得分:2)
通用表格,第1组与第二组第二组匹配以下边界词
\$[\s]?([\d\.\,]+)[\s]*([\w]*)
完全匹配表格:
\$[\s]?([\d\.\,]+)[\s]*(thousand|million|billion|trillion)?
答案 1 :(得分:0)
您应该使用以下正则表达式:
/\$\d+[\,\.\d\s]*(?:thousand|million|billion|trillion|$)/ig
答案 2 :(得分:0)
试试这个
var re = /\$[0-9]+[?:, 0-9]*(?:billion|million+)?/;
var sourcestring = "source string to match with pattern";
var results = [];
var i = 0;
for (var matches = re.exec(sourcestring); matches != null; matches = re.exec(sourcestring)) {
results[i] = matches;
for (var j=0; j<matches.length; j++) {
alert("results["+i+"]["+j+"] = " + results[i][j]);
}
i++;
}
这将解决您的问题。