0
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]

谢谢你的帮助。

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

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

4

2 回答 2

4

正则表达式可以很简单:

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

更新了演示

于 2012-11-13T21:14:53.803 回答
0

这应该这样做:

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

(针对边缘情况进行了编辑)

于 2012-11-13T21:35:22.327 回答