gpt4 book ai didi

iphone - 验证电话号码

转载 作者:行者123 更新时间:2023-12-03 20:25:34 27 4
gpt4 key购买 nike

我只想有 13 个数值,或者这 13 个数值可以以“+”sysmbol 为前缀。因此 + 不是强制性的示例:1234567891234另一个例子是:+1234567891234

Telephone number format should be international,Is there any Regex for phone number validation in iPhone

我已经尝试过上面的链接,但是这个 +1234545 但我只想有 13 个数字或 + 可以用这 13 个数字作为前缀。

请告诉我,我可以在这里更改什么

这是我尝试过的代码

NSString * forNumeric = @"^\\+(?:[0-9] ?){6,14}[0-9]$";

BOOL isMatch = [[textFieldRounded text] isMatchedByRegex:forNumeric];

if (isMatch == YES){

NSLog(@"Matched");
}
else {
NSLog(@"Not matched");
}

最佳答案

    NSString * regex = @"((07|00447|004407|\\+4407|\\+447)\\d{9})";

已经找到了一次前导 0 或前导 +44,为什么还要再搜索一次?

基本简化导致

    NSString * regex = @"((07|00440?7|\\+440?7)\\d{9})";

然后到

    NSString * regex = @"((07|(00|\\+)440?7)\\d{9})";

然后到

    NSString * regex = @"((0|(00|\\+)440?)7\\d{9})";

但 00 并不是唯一常见的拨号前缀,011 在美国和加拿大使用。

添加该内容并扭转顺序,得到:

    NSString * regex = @"(^((0(0|11)|\\+)440?|0)7\\d{9}$)";

或者最好

    NSString * regex = @"(^(?:(?:0(?:0|11)|\\+)(44)0?|0)(7\\d{9}$))";

允许以 00447、011447、+447、004407、0114407、+4407、07 开头,并且包含非捕获组。

为了更广泛的输入格式匹配,允许使用各种标点符号(连字符、括号、空格)

    NSString * regex = @"(^\\(?(?:(?:0(?:0|11)\\)?[\\s-]?\\(?|\\+)(44)\\)?[\\s-]?\\(?(?:0\\)?[\\s-]?\\(?)?|0)(7\\d{9})$)";

提取 $1 中的 44 个国家/地区代码(如果输入的数字为 07...则为空)和 $2 中的 10 位 NSN。

但是,请注意以 070 和 076 开头的号码(07624 除外)不是手机号码。

最终的模式:

    NSString * regex = @"(^\\(?(?:(?:0(?:0|11)\\)?[\\s-]?\\(?|\\+)(44)\\)?[\\s-]?\\(?(?:0\\)?[\\s-]?\\(?)?|0)(7([1-5789]\\d{2}|624)\\)?[\\s-]?\\d{6}))$)";

提取 $2 中的 NSN,然后从中删除所有非数字以进行进一步处理。

关于iphone - 验证电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9000448/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com