最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談iOS應(yīng)用中的相關(guān)正則及驗證

 更新時間:2017年04月23日 09:50:27   投稿:jingxian  
下面小編就為大家?guī)硪黄獪\談iOS應(yīng)用中的相關(guān)正則及驗證。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

1、手機號碼的驗證正則

正則表達式:

^((13[0-9])|(15[^4,\\D])|(18[0,0-9]))\\d{8}$

詳細(xì)解釋

解釋:

•^...$:
^:開始

$:結(jié)束

中間為要處理的字串

•(13[0-9]): 以13開頭接下來一位為0-9之間的數(shù)
13 : 以13開頭

[0-9]:分割語法,13后面是0-9之間的數(shù)

•| : 或(or), 將前后兩個匹配條件進行or運算

• (15[^4\\D]) : 以15開頭接下來一位是除4之外的0-9數(shù)字
15 : 以15開頭

[^4\\D] : 除了4之外的所有0-9的數(shù)字

^:此處為非 ^4 為除4之外的任何字符

\D: \D為非數(shù)字 `\`為轉(zhuǎn)義字符

•(18[0,2,5-9]) : 以18開頭接下來一位為0或者2或者5-9之間的數(shù)

•\d{8} : 8個0-9的數(shù)字
\d:0-9之間的數(shù)字

{8} : 匹配8次

正則表達式的使用:

+ (BOOL)isMobileNumber:(NSString *)mobileNumber

{

  //手機號以13, 15,18開頭,八個 \d 數(shù)字字符

  NSString *phoneRegex = @"^((13[0-9])|(15[^4,\\D])|(18[0,0-9]))\\d{8}$";

  NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",phoneRegex];

  return [phoneTest evaluateWithObject:mobileNumber]; 

}

2、身份證驗證

/**

 * 身份證號

 * @param NSString 身份證號字符串

 * @return 是否身份證號

 * d{14} 14位數(shù)字

 */

+ (BOOL) validateIdentityCard: (NSString *)identityCard

{

   BOOL flag;

  if (identityCard.length <= 0) {

    flag = NO;

    return flag;

  }

  NSString *regex2 = @"^(\\d{14}|\\d{17})(\\d|[xX])$";

  NSPredicate *identityCardPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2];

  return [identityCardPredicate evaluateWithObject:identityCard];

}
/**

 * 精確驗證身份證號

 * @param IdentityNum 身份證號 

 * @return 是否是身份證號

 */

+(BOOL)isValidWithIdentityNum:(NSString *)IdentityNum{

  //先正則匹配

  //......

  

  //計算最后一位余數(shù)

  NSArray *arrExp = [NSArray arrayWithObjects:@"7", @"9", @"10", @"5", @"8", @"4", @"2", @"1", @"6", @"3", @"7", @"9", @"10", @"5", @"8", @"4", @"2", nil];

  NSArray *arrVaild = [NSArray arrayWithObjects:@"1", @"0", @"X", @"9", @"8", @"7", @"6", @"5", @"4", @"3", @"2", nil];

  

  long sum = 0;

  for (int i = 0; i < (IdentityNum.length -1); i++) {

    NSString * str = [IdentityNum substringWithRange:NSMakeRange(i, 1)];

    sum += [str intValue] * [arrExp[i] intValue];

  }

  

  int idx = (sum % 11);

  if ([arrVaild[idx] isEqualToString:[IdentityNum substringWithRange:NSMakeRange(IdentityNum.length - 1, 1)]]) {

    return YES;

  }else{

    return NO;

  }

  return YES;

}

3、郵箱驗證

/**

 * 驗證郵箱

 *

 * @param email 郵箱字符串

 *

 * @return 是否郵箱

 *

 * [A-Z0-9a-z] 表示 A-Z 與 0-9 與 a-z 任意一個

 * {2,4}    表示 字符位大于2個,小于4個

 */

+ (BOOL) validateEmail:(NSString *)email

{

  NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";

  NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];

  return [emailTest evaluateWithObject:email];

}

4、用戶名驗證

/**

 * 用戶名驗證

 *

 * @param NSString 用戶名字符串

 *

 * @return 是否用戶名

 * {6,20} 6到20位

 */

+ (BOOL) validateUserName:(NSString *)name

{

  NSString *userNameRegex = @"^[A-Za-z0-9]{6,20}+$";

  NSPredicate *userNamePredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",userNameRegex];

  BOOL B = [userNamePredicate evaluateWithObject:name];

  return B;

}

5、密碼認(rèn)證

/**

 * 密碼認(rèn)證

 *

 * @param NSString 密碼字符串

 *

 * @return 是否密碼

 * {6,20} 6到20位

 */

+ (BOOL) validatePassword:(NSString *)passWord

{

  NSString *passWordRegex = @"^[a-zA-Z0-9]{6,20}+$";

  NSPredicate *passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",passWordRegex];

  return [passWordPredicate evaluateWithObject:passWord];

}

6、驗證昵稱

/**

 * 驗證昵稱

 *

 * @param NSString 昵稱字符串

 *

 * @return 是否昵稱

 * {4,8} 4到8位

 */

+ (BOOL) validateNickname:(NSString *)nickname

{

  NSString *nicknameRegex = @"^[\u4e00-\u9fa5]{4,8}$";

  NSPredicate *passWordPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",nicknameRegex];

  return [passWordPredicate evaluateWithObject:nickname];

}

6、4位驗證碼驗證

/**

 * 4位驗證碼

 *

 * @param verifyCode 驗證碼

 *

 * @return 是否是驗證碼

 */

+ (BOOL) validateVerifyCode:(NSString *)verifyCode

{

  BOOL flag;

  if (verifyCode.length <= 0) {

    flag = NO;

    return flag;

  }

  NSString *regex2 = @"^(\\d{4})$";

  NSPredicate *verifyCodePredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex2];

  return [verifyCodePredicate evaluateWithObject:verifyCode];

}

以上這篇淺談iOS應(yīng)用中的相關(guān)正則及驗證就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • iOS仿網(wǎng)易簡單頭部滾動效果

    iOS仿網(wǎng)易簡單頭部滾動效果

    這篇文章主要為大家詳細(xì)介紹了iOS仿網(wǎng)易簡單頭部滾動效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • iOS組件依賴避免沖突的小技巧分享

    iOS組件依賴避免沖突的小技巧分享

    這篇文章主要給大家介紹了關(guān)于iOS組件依賴避免沖突的小技巧,文中通過示例代碼介紹的非常詳細(xì),對各位iOS開發(fā)者們具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • IOS 中UIApplication詳解及實例

    IOS 中UIApplication詳解及實例

    這篇文章主要介紹了IOS 中UIApplication詳解及實例的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • IOS開發(fā)中異步網(wǎng)絡(luò)請求上實現(xiàn)同步邏輯

    IOS開發(fā)中異步網(wǎng)絡(luò)請求上實現(xiàn)同步邏輯

    這篇文章主要介紹了IOS開發(fā)中異步網(wǎng)絡(luò)請求上實現(xiàn)同步邏輯的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • iOS高仿微信相冊界面翻轉(zhuǎn)過渡動畫效果

    iOS高仿微信相冊界面翻轉(zhuǎn)過渡動畫效果

    在圖片界面點擊右下角的查看評論會翻轉(zhuǎn)到評論界面,評論界面點擊左上角的返回按鈕會反方向翻轉(zhuǎn)回圖片界面,真正的實現(xiàn)方法,與傳統(tǒng)的導(dǎo)航欄過渡其實只有一行代碼的區(qū)別,下面小編通過本文給大家介紹下ios高仿微信相冊界面翻轉(zhuǎn)過渡動畫效果,一起看看吧
    2016-11-11
  • iOS實現(xiàn)微信分享多張圖片功能

    iOS實現(xiàn)微信分享多張圖片功能

    這篇文章主要為大家詳細(xì)介紹了iOS實現(xiàn)微信分享多張圖片功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • IOS 解決UIButton 點擊卡頓/延遲的問題

    IOS 解決UIButton 點擊卡頓/延遲的問題

    本文主要介紹 IOS UIButton, 這里給大家提供代碼實例作為參考,解決 UIButton 點擊卡頓或者延遲問題,在開發(fā) IOS 項目的小伙伴如果遇到這樣的問題可以參考下
    2016-07-07
  • iOS中使用JSPatch框架使Objective-C與JavaScript代碼交互

    iOS中使用JSPatch框架使Objective-C與JavaScript代碼交互

    有了JSPatch,我們便可以在iOS App開發(fā)中令JavaScript代碼調(diào)用原生的Objective-C屬性和方法等,下面就來詳細(xì)看一下如何在iOS中使用JSPatch框架使Objective-C與JavaScript代碼交互
    2016-06-06
  • 詳解IOS中文件路徑判斷是文件還是文件夾

    詳解IOS中文件路徑判斷是文件還是文件夾

    這篇文章主要介紹了詳解IOS中文件路徑判斷是文件還是文件夾的相關(guān)資料,這里提供兩種實現(xiàn)方法,需要的朋友可以參考下
    2017-09-09
  • IOS開發(fā)中的設(shè)計模式匯總

    IOS開發(fā)中的設(shè)計模式匯總

    在ios的程序開發(fā)中,經(jīng)常搞暈ios的開發(fā)模式,今天小編就給大家簡單的總結(jié)一下,需要的的朋友參考下
    2017-03-03

最新評論

绥宁县| 克什克腾旗| 衡南县| 宜阳县| 汨罗市| 皋兰县| 突泉县| 长乐市| 彰武县| 湖北省| 盈江县| 盐亭县| 丰台区| 宁河县| 广州市| 梁河县| 托克托县| 晴隆县| 东乌珠穆沁旗| 青浦区| 内江市| 阿图什市| 西丰县| 台山市| 平陆县| 衡阳市| 福贡县| 泽普县| 屯昌县| 工布江达县| 花垣县| 黑河市| 清水县| 伊通| 天长市| 富顺县| 北川| 休宁县| 黑河市| 枣阳市| 石河子市|