在javascript中使用正则表达式从字符串中提取双精度和整数

时间:2014-05-25 21:19:43

标签: javascript regex

当我尝试这个时:

"12.3 xxx4.56 23yyy".match(/\d+/ig)

我得到了这个输出:

["12", "3", "4", "56", "23"]

我想这样:

["12.3", "4.56", "23"]

正确的正则表达式是什么?

2 个答案:

答案 0 :(得分:1)

您可以在正则表达式中使用可选组来处理这种情况。像这样:

"12.3 xxx4.56 23yyy".match(/\d+(\.\d+)?/ig)
=> Array [ "12.3", "4.56", "23" ]

(...)?语法意味着里面的所有内容都是可选的 - 如果存在,它将匹配,但如果不存在则不会阻止匹配。仅?也可以应用于单个术语。

答案 1 :(得分:1)

这个怎么样:

"12.3 xxx4.56 23yyy".match(/([\d.]+)/g)

i 似乎没必要,因为您只搜索号码 i 不区分大小写是不必要的。