在红宝石验证电话号码(Validating phone number in ruby)

2019-06-25 01:36发布

什么是验证北美电话号码的规则? 此外,有没有一个regex可以使用吗? 是否有宝石做到这一点?

这里有一些规则,我心目中

  1. 采用10位数字
  2. 无特殊字符
  3. 正数

Answer 1:

有很多的宝石,会为你做到这一点。

看看: 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



Answer 2:

试试这个

(?:\+?|\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
"


Answer 3:

我在使用的规则我的Perl代码用于验证NANP的电话号码由道格·纽厄尔发送到telnum-1邮件列表,其中下面我重现,有所简化到电子邮件来只考虑完整的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的元数据,但要注意,它是粗糙的地狱。



Answer 4:

如果你想要的东西比一个正则表达式更先进, Twilio有一个API,它可以这样做 :

Twilio查找是一个REST API,可以:

  • 验证电话号码存在
  • 格式的任何国际电话号码到其地方标准
  • 确定是否有电话号码的手机,VOIP或座机
  • 发现有关电话号码的运营商信息

  • 我没有用过这个呢! 但它应该工作,虽然你确实需要一个(免费)Twilio帐户。 (另外,我不Twilio比拥有一个免费帐户我摆弄下属,其他)。



    Answer 5:

    我写这里的宝石: https://github.com/travisjeffery/validates_phone_number会做你想要什么,如果您有任何疑问或问题,让我知道,谢谢。



    Answer 6:

    class Phne
    def ad
    puts "Enter your phone number"
    re=gets.chomp
    if re= ~/\b^([0-9]{10})$\b/
    puts "Valid phone number"
    else
    puts "Invalid phone number"
    end
    end
    end
    
    obj=Phne.new
    obj.ad
    


    文章来源: Validating phone number in ruby