6

北米の電話番号を検証するためのルールは何ですか? また、regex使用できるものはありますか?これを行う宝石はありますか?

ここに私が心に留めているいくつかのルールがあります

  1. 10桁の数字
  2. 特殊文字なし
  3. 正の数
4

6 に答える 6

7

あなたのためにこれを行う多くの宝石があります。

ご覧ください:http ://rubygems.org/search?utf8 =%E2%9C%93&query = phone + number

これはあなたが必要とすることをするように見えます-それは基本的に電話番号を検証するために正規表現を実装します:http://rubygems.org/gems/validates_phone_number

米国、カナダ(バミューダ、バハマなど、およびすべての+1番号)の場合、正規表現に従う必要のある他の規則があります。最初の桁(+1の後)は2-9でなければなりません。

完全なリストについては、http://en.wikipedia.org/wiki/North_American_Numbering_Planを参照してください。

于 2012-06-01T10:49:10.710 に答える
4

これを試して

(?:\+?|\b)[0-9]{10}\b

説明

@"
(?:         # Match the regular expression below
               # Match either the regular expression below (attempting the next alternative only if this one fails)
      \+          # Match the character “+” literally
         ?           # Between zero and one times, as many times as possible, giving back as needed (greedy)
   |           # Or match regular expression number 2 below (the entire group fails if this one fails to match)
      \b          # Assert position at a word boundary
)
[0-9]       # Match a single character in the range between “0” and “9”
   {10}        # Exactly 10 times
\b          # Assert position at a word boundary
"
于 2012-06-01T10:41:55.357 に答える
3

NANP 電話番号を検証するために私が perl コードで使用したルールは、Doug Newell が telnum-l メーリング リストに送信した電子メールに基づいています。これを以下に再現します。完全な 10 桁の番号のみを考慮するようにいくらか単純化されています。

The number 10 digits long.  We'll call this pattern:
    ABC DEF XXXX

A may not be 0 or 1.

B may not be 9.

A+B may not be 37 or 96.

B+C may not be 11.

D may not be 0 or 1.

libphonenumber のメタデータから正規表現を抽出できるかもしれませんが、注意してください。

于 2012-06-13T15:58:20.440 に答える
0

私はここに宝石を書きました: https://github.com/travisjeffery/validates_phone_numberこれはあなたが望むことをします.質問や問題がある場合はお知らせください.

于 2012-07-07T20:50:52.693 に答える