返回美元金额正则表达式 JavaScript
return dollar amount regex javascript
我有这个提取的字符串,我试图返回美元金额。
var str = "5 Iphones in stock at $299 on 11/26";
var strNew = str.match(/^'$?[0-9]+/g);
strIwant = "$299"
它有效但并非总是如此,当有多个数字时,它似乎返回 null,如上例所示,有没有另一种方法可以做到这一点?
您测试时使用的正则表达式指示模式必须从字符串的开头开始(通过^
字符),这可以解释为什么您测试的示例字符串有时会返回null
。
就匹配整美元金额(没有小数和美分)而言,'$[0-9]+
应该就足够了。以下是似乎适合您需求的工作示例代码:
var strs = ["5 Iphones in stock at $299 on 11/26 and $500 on 11/27",
"5 Iphones in stock at $299 on 11/26",
// this would be matched with your original regex
"$200 worth of Iphones in stock at $299 on 11/26 and $500 on 11/27"];
strs.forEach(function(v) { console.log(v.match(/'$[0-9]+/g)); })
将我预期的结果打印到控制台,
["$299", "$500"]
["$299"]
["$200", "$299", "$500"]
如果你想抓住"$299",你必须使用将表达式包装在"()"中
如果美元总是必要的,那么不需要"?"
最后,如果数量可以在字符串的任何部分,那么"^"是wron
var str = "5 Iphones in stock at $299 on 11/26";
var strNew = str.match(/('$[0-9]+)/g);
然后,strNew 现在是匹配值的数组。 strNew = ["$299"]
var str = "5 Iphones in stock at $299 on 11/26 and $199 off";
var strNew = str.match(/('$[0-9]+)/g);
则 strNew = ["$299", "$199"]
;
试试
/'$('d+)/g
如果奖品是整数,则返回美元金额。
/'$('d+)('.'d+)?/g
如果奖品是浮动或整数,这将返回美元金额。如果奖品是浮动的,则为两个阿里亚,一个是美元金额,另一个是美分金额。
相关文章:
- Javascript 正则表达式 : ^[^/s/]+[a-z]{1,}[0-9]*[-_]*[^/][
- JavaScript正则表达式文本与RegExp对象
- 将javascript正则化为vb
- 将po-box javascript正则表达式转换为c#regex
- 被javascript正则表达式分组卡住了
- 从字符串中提取年份的Javascript正则表达式
- 尝试使用Javascript正则表达式来获取“&"分隔文本,无论它是否's是最后一个值
- JavaScript正则表达式匹配量
- 在字符串列表中搜索任何出现的单词,如果单词的第一个字符匹配,则高亮匹配单词.Javascript正则表达式
- javascript正则表达式来识别所有特殊字符
- Javascript-正则表达式,用于在未转义字符上拆分字符串,例如|,但忽略|
- 查找所有注释的JavaScript正则表达式
- javascript正则表达式验证未按预期工作
- javascript正则表达式,用于匹配带数字和不带数字的字符串
- 模仿负查找以匹配JavaScript正则表达式中没有紧跟特定字符的模式
- JavaScript正则表达式(带_-的字母数字字符)
- 用特定的javascript正则表达式替换每个单词
- 搜索日历事件的Javascript正则表达式
- 如何获取 JavaScript 正则表达式子匹配的位置
- 正则表达式子字符串以JavaScript开始和结束