この正規表現で負の数も一致させるにはどうすればよいですか? この正規表現は正の値でも問題なく機能しますが、-10、-125.5 などの負の値も許可する必要があります。
^[0-9]\d*(\.\d+)?$
ありがとう
最初にそれが必要な理由がわかりません[0-9]
。
試す:
^-?\d*(\.\d+)?$
アップデート
一の位に数字があることを確認したい場合は、次を使用します
^-?\d+(\.\d+)?$
更新 (2014 年 13 月 8 日):これは、正数と負数の最適なコードです =)
(^-?0\.[0-9]*[1-9]+[0-9]*$)|(^-?[1-9]+[0-9]*((\.[0-9]*[1-9]+[0-9]*$)|(\.[0-9]+)))|(^-?[1-9]+[0-9]*$)|(^0$){1}
私はこの数字で試してみましたが、うまくいきます:
-1234454.3435
-98.99
-12.9
-12.34
-10.001
-3
-0.001
-000
-0.00
0
0.00
00000001.1
0.01
1201.0000001
1234454.3435
7638.98701
django url の正規表現に関するいくつかの実験があります。これには、負の数から正の数が必要でした
^(?P<pid>(\-\d+|\d+))$
(\-\d+|\d+)
この部分に注目して他の部分は無視してみましょう。このセミコロンは正規表現のOR|
を意味し、負の値はこの部分に一致し、正の値はこれに一致します。\-\d+
\d+
これにより、正と負の両方の整数が許可されます
ValidationExpression="^-?[0-9]\d*(\d+)?$"
の前に追加してから、作業を行う必要があります"-" minus
。? quantifier
[0-9] expression
-?[0-9]
参考のため
^b
- ^ quantifier
"b" で始まる任意の文字列に一致c?
- ? quantifier
"c" の 0 回または 1 回の出現に一致[0-9]
- の間の任意の文字を見つけます[] brackets
\d
- から数字を見つける0-9
d*
- * quantifier
"d" の 0 回以上の出現に一致\.
- に一致"." character
z+
- + quantifier
「z」の 1 回以上の出現に一致e$
- $ quantifier
「e」で終わる任意の文字列に一致質問に投稿された正規表現を理解するのに役立つことを願っています。
これがありval="-12XXX.0abc23"
、10 進数のみを抽出したい場合、この場合、この正規表現 ( ^-?[0-9]\d*(\.\d+)?$
) はそれを達成するのに役立ちません。
これは、正しい検出正規表現を使用した適切なコードです。
var val="-12XXX.0abc23";
val = val.replace(/^\.|[^-?\d\.]|\.(?=.*\.)|^0+(?=\d)/g, '');
console.log(val);
0 または 1 のトークンを追加するだけです。
^-?[0-9]\d*(.\d+)?$
負の数のみの場合、これは完璧です。
^-\d*\.?\d+$