34

次の正規表現は、9〜11桁の範囲に一致します。/\d{9,11}/

正確に9桁または11桁(10桁を除く)に一致する正規表現を作成するための最良の方法は何ですか?

したがって、入力要素のパターン属性を使用すると、正規表現は入力フィールドの値全体と一致する必要があります。9桁または11桁の数字を受け入れたい。

4

3 に答える 3

42

さて、あなたは次のようなことを試すことができます:

^\d{9}(\d{2})?$

これは正確に9桁に一致し、その後にオプションの2桁(つまり、9桁または11桁)が続きます。

または、

^(\d{9}|\d{11})$

同様に機能する可能性があります。

ただし、必ずしもすべてが正規表現で行われる必要はないことを忘れないでください。文字列の一致を確認するのも同じくらい簡単^\d*$で、文字列の長さ自体が9または11のいずれかであることを確認できます(strlenたとえば、などを使用)。

于 2012-11-01T14:17:29.443 に答える
5

この正規表現は

^(\d{9}|\d{11})$

またはあなたがそれを正確に一致させたくない場合

\D(\d{9}|\d{11})\D
于 2012-11-01T14:17:09.040 に答える
1
/[^\d](\d{9}|\d{11})[^\d]/

使用しているツールによっては、|、および文字をエスケープする必要がある場合があります。

8、または9または11以外の数値と一致しないようにするには、一致が数字以外の文字で囲まれていることを示すために、正規表現を何かで囲む必要があることに注意してください。理想的には、それはある種の単語境界文字ですが、その構文はツールによって異なります。

/\b(\d{9}|\d{11})\b/

いくつかのツールで動作します。何を使っていますか?

于 2012-11-01T14:16:29.017 に答える