foo = "$22.50 + taxes"
我想要22.50。
尝试:
foo.match(/^\$([^\ +])/)
我的错误逻辑? “从美元符号开始,然后回到许多不是" +"
的字符然后返回那个。
我如何才能获得数字部分?假设实际数字,22.5是变量,可以是任何变量,但围绕它的文本将是一致的。
答案 0 :(得分:2)
您可以将此正则表达式用于匹配$
和数字:
foo.match(/^\$\d+(?:\.\d+)?\b/)
//=> ["$22.50"]
或者使用预测来匹配$
,直到获得" +"
:
foo.match(/^\$.*(?= \+)/)
//=> ["$22.50"]
答案 1 :(得分:0)
无需在开头锚定正则表达式,或匹配美元符号,或匹配空格和加号。只需抓住数字序列和句号:
foo.match(/[\d.]+/)
> ["22.50"]