最近項目需要本地檢測手機號碼正確性嘀韧,于是用了一段代碼篇亭,但是后來發(fā)現(xiàn)這個代碼塊已經(jīng)過時了。在網(wǎng)上簡單找了下锄贷,發(fā)現(xiàn)沒有最新的一個公開代碼译蒂,可能
很多人都是用的下面正則方法來檢測手機號碼,那你們該更新代碼了谊却。眾所周知柔昼,三大運營商已經(jīng)增加了不少手機號碼字段,還用之前的代碼就會流失部分用戶了炎辨。
直接貼代碼吧:
/**
*?手機號碼:
*?13[0-9],?14[5,7],?15[0,?1,?2,?3,?5,?6,?7,?8,?9],?17[6,?7,?8],?18[0-9],?170[0-9]
*?移動號段:?134,135,136,137,138,139,150,151,152,157,158,159,182,183,184,187,188,147,178,1705
*?聯(lián)通號段:?130,131,132,155,156,185,186,145,176,1709
*?電信號段:?133,153,180,181,189,177,1700
*/
?func? isTelNumber(num:NSString)->Bool
{
let? mobile = "^1((3[0-9]|4[57]|5[0-35-9]|7[0678]|8[0-9])\\d{8}$)"
/**
*?中國移動:China?Mobile
*?134,135,136,137,138,139,150,151,152,157,158,159,182,183,184,187,188,147,178,1705
*/
let? CM = "(^1(3[4-9]|4[7]|5[0-27-9]|7[8]|8[2-478])\\d{8}$)|(^1705\\d{7}$)"
/**
*?中國聯(lián)通:China?Unicom
*?130,131,132,155,156,185,186,145,176,1709
*/
let? CU = "(^1(3[0-2]|4[5]|5[56]|7[6]|8[56])\\d{8}$)|(^1709\\d{7}$)"
/**
*?中國電信:China?Telecom
*?133,153,180,181,189,177,1700
*/
let? CT = "(^1(33|53|77|8[019])\\d{8}$)|(^1700\\d{7}$)"
let regextestmobile = NSPredicate(format: "SELF MATCHES %@",mobile)
let regextestcm = NSPredicate(format: "SELF MATCHES %@",CM )
let regextestcu = NSPredicate(format: "SELF MATCHES %@" ,CU)
let regextestct = NSPredicate(format: "SELF MATCHES %@" ,CT)
if ((regextestmobile.evaluateWithObject(num) == true)
|| (regextestcm.evaluateWithObject(num)? == true)
|| (regextestct.evaluateWithObject(num) == true)
|| (regextestcu.evaluateWithObject(num) == true))
{
return true
}
else
{
return false
}
}
直接貼到項目里面就可以直接用了捕透。