Javascript正则表达式以匹配货币
我想找到并匹配给定文本中的货币。可接受的格式包括:Javascript正则表达式以匹配货币,javascript,regex,Javascript,Regex,我想找到并匹配给定文本中的货币。可接受的格式包括: 10美元 10.25美元 999000美元 20亿美元 6.25亿美元 这是到目前为止我的正则表达式: var money_vals = $('body').text().match(/\$\d+\.?\d+(\,\d+)?(thousand|million|billion|trillion)?/g); 然而,它不符合20亿美元或6.25亿美元或任何后面跟着百万/亿/万亿的价值。 另外,在我的文本中的一段加上5美元后,我意识到它没有匹配
- 10美元
- 10.25美元
- 999000美元
- 20亿美元
- 6.25亿美元
var money_vals = $('body').text().match(/\$\d+\.?\d+(\,\d+)?(thousand|million|billion|trillion)?/g);
然而,它不符合20亿美元或6.25亿美元或任何后面跟着百万/亿/万亿的价值。
另外,在我的文本中的一段加上5美元后,我意识到它没有匹配
有人能帮忙吗?您应该使用以下正则表达式:
/\$\d+[\,\.\d\s]*(?:thousand|million|billion|trillion|$)/ig
作为一种通用形式,第1组与下面的边界词的第二组数字相匹配
\$[\s]?([\d\.\,]+)[\s]*([\w]*)
精确匹配形式:
\$[\s]?([\d\.\,]+)[\s]*(thousand|million|billion|trillion)?
试试这个
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++;
var re=/\$[0-9]+[?:,0-9]*(?:十亿+);
var sourcestring=“要与模式匹配的源字符串”;
var结果=[];
var i=0;
for(var matches=re.exec(sourcestring);matches!=null;matches=re.exec(sourcestring)){
结果[i]=匹配项;
对于(var j=0;jTry如下:\$\d+(,\\)\d+)(\s(千亿兆))?大多数货币符号的可能重复通常写为后缀(美元不是世界上唯一的货币)。这对我有用:var money vals=$('body').text().match(/\$\d+(,\d{3})*(\.\d+)(千亿兆兆兆兆兆兆兆兆兆兆)?/g);只相当于20亿美元和6.25亿美元