改变我的正则表达式以查看任何非数字字符?

时间:2012-11-13 21:13:02

标签: javascript regex

var text1 = "this is %60.94 correct?"
var text2 = "is this %45?"
var text3 = "looks like %45.5/%54.5."
var text4 = "what about 5 or 10 = %22.5.2."

现在我正在使用此text.match(/%[^\s\/\,]+/g),但它不能处理更多边缘案例。

我需要能够停止任何非数字字符,但第一个.除外。

任何关于如何修改正则表达式的指针都会很棒。这是我想要的输出。

text1.match(regex) -> [60.94]
text2.match(regex) -> [45]
text3.match(regex) -> [45.5, 54.5]
text4.match(regex) -> [22.5]

感谢您的帮助。

抱歉,规则:在除.的第一个实例之外的任何非数字字符的%符号之后

另外:找到所有实例很重要

2 个答案:

答案 0 :(得分:4)

正则表达式可以是这样的:

/%(\d+(\.\d+)?)/

Updated DEMO

答案 1 :(得分:0)

这应该做:

/%(\d*\.?\d+|\d+\.?\d*)/g

(为边缘案例编辑)