【问题标题】:validate phone number for sms message in ios在ios中验证短信的电话号码
【发布时间】:2012-10-10 16:25:17
【问题描述】:

我知道如何使用人员选择器 api 从通讯簿中获取电子邮件地址并将其验证为有效电子邮件。我现在正尝试对手机号码做同样的事情。该号码将被存储并稍后传递给短信 api。如何验证号码以确保它可以接收短信并使用来自不同国家的所有不同号码格式?

如果不能准确,我宁愿允许一些在发送消息阶段失败的号码,而不是拒绝有效的号码。

【问题讨论】:

  • 也许这会有所帮助 -> the-lost-beauty.blogspot.jp/2010/01/…
  • 该脚本看起来很有趣,但需要手动配置所有国家/地区,我无法为该项目证明这一点。我想我会使用 NSDataDetector 来确保它是一个电话号码,并向用户提供一些说明,表明它必须是一个手机号码。
  • 好吧,我让它与 NSDataDetector 一起工作,但很失望地发现,如果您尝试向固定电话发送短信(控制器返回 MessageComposeResultSent),MFMessageComposeViewController 只会静默失败。所以,我仍然在寻找某种在 iOS 中的手机号码验证。

标签: ios sms phone-number


【解决方案1】:

在 libPhoneNumber-iOS (https://github.com/iziz/libPhoneNumber-iOS) 中

你可以这样用

NBPhoneNumberUtil *phoneUtil = [NBPhoneNumberUtil sharedInstance];

NSError *aError = nil;
NBPhoneNumber *aPhoneNumber = 
    [phoneUtil parse:@"13111589979" defaultRegion:@"US" error:&aError];

NBEPhoneNumberType type = [phoneUtil getNumberType:myNumber];
BOOL isValidType = (type == NBEPhoneNumberTypeMOBILE);

BOOL isValidNumber = 
    [phoneUtil isValidNumber:myNumber] && [phoneUtil isViablePhoneNumber:myNumber];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-21
    • 1970-01-01
    • 2021-11-21
    • 1970-01-01
    • 2014-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多