做项目用到通讯录调用,一般的对手机号码校验就不说了,无非就是首位为1,长度11等等,这里说一下校验之后如何对手机号去掉‘86’或‘+86’,直接看代码吧
手机号码去掉‘-’和去空格后,对于有“+86”的手机号会变成“+86·158xxxxxxxx”(示例),因此要去掉“+86·”才是我们想要的正确手机号
特别特别特别需要注意的一点:上面代码中的“·”可能匹配不到“+86”后面的“·”,你最好先把你要处理的“+86·158xxxxxxxx”打印出来,再把里面的“·”复制粘贴,避免出错或匹配不出来。
对于点击备注崩溃的问题,我常用的有两个办法,一个办法是不展示,另一个办法是展示了但不响应点击事件,只说下后面这种处理方式,在
下面添加如下代码即可:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
- (
NSString
*)formatPhoneNum:(
NSString
*)phone
{
if
([phone hasPrefix:@
"86"
]) {
NSString
*formatStr = [phone substringWithRange:
NSMakeRange
(2, [phone length]-2)];
return
formatStr;
}
else
if
([phone hasPrefix:@
"+86"
])
{
if
([phone hasPrefix:@
"+86·"
]) {
NSString
*formatStr = [phone substringWithRange:
NSMakeRange
(4, [phone length]-4)];
return
formatStr;
}
else
{
NSString
*formatStr = [phone substringWithRange:
NSMakeRange
(3, [phone length]-3)];
return
formatStr;
}
}
return
phone;
}
|
手机号码去掉‘-’和去空格后,对于有“+86”的手机号会变成“+86·158xxxxxxxx”(示例),因此要去掉“+86·”才是我们想要的正确手机号
特别特别特别需要注意的一点:上面代码中的“·”可能匹配不到“+86”后面的“·”,你最好先把你要处理的“+86·158xxxxxxxx”打印出来,再把里面的“·”复制粘贴,避免出错或匹配不出来。
对于点击备注崩溃的问题,我常用的有两个办法,一个办法是不展示,另一个办法是展示了但不响应点击事件,只说下后面这种处理方式,在
1
|
-(
BOOL
)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier
|
下面添加如下代码即可:
1
2
3
|
if
(property == kABPersonNoteProperty) {
return
NO
;
}
|