北米の電話番号を検証するためのルールは何ですか? また、regex
使用できるものはありますか?これを行う宝石はありますか?
ここに私が心に留めているいくつかのルールがあります
- 10桁の数字
- 特殊文字なし
- 正の数
北米の電話番号を検証するためのルールは何ですか? また、regex
使用できるものはありますか?これを行う宝石はありますか?
ここに私が心に留めているいくつかのルールがあります
あなたのためにこれを行う多くの宝石があります。
ご覧ください: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を参照してください。
これを試して
(?:\+?|\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
"
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 のメタデータから正規表現を抽出できるかもしれませんが、注意してください。
私はここに宝石を書きました: https://github.com/travisjeffery/validates_phone_numberこれはあなたが望むことをします.質問や問題がある場合はお知らせください.