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]

助けてくれてありがとう。

申し訳ありませんが、ルール:の最初のインスタンスを除く任意の非数値文字への%記号の後.

また、すべてのインスタンスを見つけることが重要です

4

2 に答える 2

4

正規表現は単純に次のようになります。

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

更新されたデモ

于 2012-11-13T21:14:53.803 に答える
0

これは行う必要があります:

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

(エッジケース用に編集)

于 2012-11-13T21:35:22.327 に答える