【发布时间】:2016-01-01 21:55:41
【问题描述】:
您好,我需要法国的电话号码验证。
有效格式:+262#########
在 textDidChang 中完成验证:所以我需要检查每个数字是否属于上述数字。
下面是我的正则表达式
[[NSPredicate predicateWithFormat:@"SELF MATCHES %@", @"+2?6?2?\d?\d?\d?\d?\d?\d?\d?\d?\d?"] evaluateWithObject:@"+262989878989"]
执行此行时应用程序崩溃
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Can't do regex matching, reason: (Can't open pattern U_REGEX_RULE_SYNTAX (string 2, pattern +2?6?2?\d?\d?\d?\d?\d?\d?\d?\d?\d?, case 0, canon 0))'
帮我解决这个问题。
【问题讨论】:
-
法国电话号码的规则是什么?它们以 262 开头,后面有 9 位数字?一共12个?
-
@NSNoob: 是的,developer.apple.com/library/ios/documentation/Foundation/… 在这里我读到“\d”以获取数字为什么它不起作用..
-
查看 Abhinav 的回答。它应该工作。只需添加 00 数字和 + 数字的验证规则
-
@TamilKing 我相信你的问题是另外一回事。您想要的是在输入的每个数字处验证用户电话号码输入。请查看我更新的帖子 - 虽然是非正则表达式!
标签: ios objective-c regex nsregularexpression