厚脸皮的正则表达式帮助:子串或匹配字符串的数字部分

时间:2015-11-19 17:05:37

标签: javascript regex

foo = "$22.50 + taxes"

我想要22.50。

尝试:

foo.match(/^\$([^\ +])/)

我的错误逻辑? “从美元符号开始,然后回到许多不是" +"的字符然后返回那个。

我如何才能获得数字部分?假设实际数字,22.5是变量,可以是任何变量,但围绕它的文本将是一致的。

2 个答案:

答案 0 :(得分:2)

您可以将此正则表达式用于匹配$和数字:

foo.match(/^\$\d+(?:\.\d+)?\b/)
//=> ["$22.50"]

或者使用预测来匹配$,直到获得" +"

foo.match(/^\$.*(?= \+)/)
//=> ["$22.50"]

答案 1 :(得分:0)

无需在开头锚定正则表达式,或匹配美元符号,或匹配空格和加号。只需抓住数字序列和句号:

foo.match(/[\d.]+/)

> ["22.50"]