好久沒(méi)有更新了,發(fā)現(xiàn)好多簡(jiǎn)友還在不停的關(guān)注,感覺(jué)很對(duì)不起大家。現(xiàn)在對(duì)這篇正則進(jìn)行下更新,修正下不對(duì)的地方。感謝大家的支持!

創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的梨林網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
我們先對(duì)正則表達(dá)式語(yǔ)法做一個(gè)簡(jiǎn)單的說(shuō)明,這樣方便理解。網(wǎng)上關(guān)于正則的資料很多很多,我在這里只做下整理
我們先來(lái)舉個(gè)例子分析一個(gè)可以匹配幾種格式的電話號(hào)碼,像(010)88886666,或022-22334455,或02912345678等的表達(dá)式
表達(dá)式: \\(?0\d{2}[) -]?\d{8}
(?=.*\d)(?=.*[a-zA-Z])(?=.*[~`!@#$%^*()-_+={[}]|\\:;"',.?/])[\da-zA-Z~`!@#$%^*()-_+={[}]|\\:;"',.?/]{6,20}
有如下正則表達(dá)式:
強(qiáng)密碼(必須包含大小寫(xiě)字母和數(shù)字的組合,不能使用特殊字符,長(zhǎng)度在 8-10 之間): ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,10}$
使用如上正則表達(dá)式驗(yàn)證的時(shí)候發(fā)現(xiàn)沒(méi)有達(dá)到自己想要的效果,那是因?yàn)樯厦娴?\d 會(huì)被當(dāng)成轉(zhuǎn)義字符來(lái)對(duì)待,XCode警告 Unknown escape sequence '\d' ,如下:
最后po如上字符串的時(shí)候發(fā)現(xiàn)po出來(lái)的是 ^(?=.*d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,10}$ ,少了 \ 正因?yàn)槿绱耍哉齽t的校驗(yàn)就不成功了。
解決辦法,就是在 \d 前面再加個(gè) \ ,不讓他轉(zhuǎn)義,如下:
這樣正則的校驗(yàn)就正確了。
// 判斷是否是手機(jī)號(hào)
+ (BOOL)isValidPhone:(NSString *)phone
{
if (phone.length != 11)
{
return NO;
}else{
/**
* 移動(dòng)號(hào)段正則表達(dá)式
*/
NSString *CM_NUM = @"^((13[4-9])|(147)|(15[0-2,7-9])|(178)|(18[2-4,7-8]))\\d{8}|(1705)\\d{7}$";
/**
* 聯(lián)通號(hào)段正則表達(dá)式
*/
NSString *CU_NUM = @"^((13[0-2])|(145)|(15[5-6])|(176)|(18[5,6]))\\d{8}|(1709)\\d{7}$";
/**
* 電信號(hào)段正則表達(dá)式
*/
NSString *CT_NUM = @"^((133)|(153)|(177)|(18[0,1,9]))\\d{8}$";
NSPredicate *pred1 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM_NUM];
BOOL isMatch1 = [pred1 evaluateWithObject:phone];
NSPredicate *pred2 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CU_NUM];
BOOL isMatch2 = [pred2 evaluateWithObject:phone];
NSPredicate *pred3 = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CT_NUM];
BOOL isMatch3 = [pred3 evaluateWithObject:phone];
if (isMatch1 || isMatch2 || isMatch3) {
return YES;
}else{
return NO;
}
}
}
名稱欄目:ios開(kāi)發(fā)正則表達(dá)式,正則表達(dá)式的實(shí)現(xiàn)原理
鏈接分享:http://chinadenli.net/article45/dsehghi.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷(xiāo)、用戶體驗(yàn)、定制開(kāi)發(fā)、網(wǎng)站排名、微信公眾號(hào)、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)