6

これは、整数を検証するためのソリューションです。誰かがカリムの答えの論理を説明してもらえますか.
これは完全に機能しますが、その方法を理解できません。

var intRegex = /^\d+$/;
if(intRegex.test(someNumber)) {
   alert('I am an int');
   ...
}
4

4 に答える 4

0

この正規表現の方が良いかもしれません/^[1-9]+\d*$/

^     // beginning of the string
[1-9] // numeric char [1-9]
+     // 1 or more occurrence of the prior
\d    // numeric char [0-9]
*     // 0 or more occurrences of the prior
$     // end of the string

また、事前にゼロが埋め込まれた負でない整数に対してもテストします

于 2014-11-07T09:37:52.137 に答える
0

非負の整数とは何ですか?

非負の整数は、「0 または正の整数」です。

ソース: http://mathworld.wolfram.com/NonnegativeInteger.html

つまり、負でない整数を検証しようとしています。

上記の回答は、-0やなどの整数が含まれていないため不十分です-0000。技術的には、解析後に非負の整数になります。+他の回答も、前にある整数を検証しません。

検証には次の正規表現を使用できます。

/^(\+?\d+|-?0+)$/

オンラインでお試しください!

説明:

^                   # Beginning of String
    (               # Capturing Group
            \+?     # Optional '+' Sign
            \d+     # One or More Digits (0 - 9)
        |           # OR
            -?      # Optional '-' Sign
            0+      # One or More 0 Digits
    )               # End Capturing Group
$                   # End of String

次のテスト ケースは true を返します: -0, -0000, 0, 00000, +0, +0000, 1, . 次のテスト ケースはfalse を返します: 、、、。12345+1+1234-12.3123.4-1234-1

注: この正規表現は、科学表記法で記述された整数文字列では機能しません。

于 2018-02-27T01:45:54.393 に答える