1. 程式人生 > >Objective-C用正則表示式判斷字串是否為手機號、郵箱、身份證號

Objective-C用正則表示式判斷字串是否為手機號、郵箱、身份證號

用正則表示式判斷字串是否為手機號:

- (BOOL)isPhoneNumber:(NSString *)str {
    NSString * MOBILE = @"^1(3[0-9]|5[0-35-9]|8[025-9])\\d{8}$";
    NSString * CM = @"^1(34[0-8]|(3[5-9]|5[017-9]|8[278])\\d)\\d{7}$";
    NSString * CU = @"^1(3[0-2]|5[256]|8[156])\\d{8}$";
    NSString * CT = @"^1((33|53|8|7[09])[0-9]|349)\\d{7}$"
; NSPredicate *regextestmobile = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", MOBILE]; NSPredicate *regextestcm = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM]; NSPredicate *regextestcu = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CU]; NSPredicate *regextestct = [NSPredicate predicateWithFormat:@"SELF MATCHES %@"
, CT]; BOOL res1 = [regextestmobile evaluateWithObject:str]; BOOL res2 = [regextestcm evaluateWithObject:str]; BOOL res3 = [regextestcu evaluateWithObject:str]; BOOL res4 = [regextestct evaluateWithObject:str]; if (res1 || res2 || res3 || res4 ) { return YES; } else { return
NO; } }

用正則表示式判斷字串是否為郵箱:

- (BOOL)isEmail:(NSString *)str {
    NSString *emailRegex = @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
    NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
    return [emailTest evaluateWithObject:str];
}

用正則表示式判斷字串是否為身份證號:

- (BOOL) isValidateIdentityCard: (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];
}

相關推薦

Objective-C表示式判斷字串是否機號郵箱身份證

用正則表示式判斷字串是否為手機號: - (BOOL)isPhoneNumber:(NSString *)str { NSString * MOBILE = @"^1(3[0-9]|5[0-

表示式判斷字串是否數字

IF cl_abap_matcher=>matches( pattern = '^(-?[1-9]\d*(\.\d*[1-9])?)|(-?0\.\d*[1-9])$' text = '1.01' ) = abap_true. WRITE '數字'. ELSE.

java表示式判斷一個字串是否是車牌號

public boolean checkCarNumber(String content) { String pattern = "([京津滬渝冀豫雲遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陝吉閩貴粵青藏川寧瓊]{1}(([A-HJ-Z]{1}[A-HJ-NP-Z0-9]{5})|([A-HJ-

c# 表示式獲取開始和結束字串中間的值

/// <summary> /// 獲得字串中開始和結束字串中間得值 /// </summary> /// <param name="str">字串</param> /// <param name="s">開始</param>

Java表示式判斷輸入的電話號碼格式是否正確

import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.commons.lang3.StringUtils; /** *三大運營商號碼均可驗證(不含衛星通訊1349) */ p

表示式判斷字串是否全是數字小數點負號組成等

"^\d+$" //非負整數(正整數 + 0) "^[0-9]*[1-9][0-9]*$" //正整數 "^((-\d+)|(0+))$" //非正整數(負整數 + 0) "^-[0-9]*[1-9][0-9]*$" //負整數 "^-?\d+$" //整數 "^\d+(\.\d+)?$" //非負浮點數(正

表示式——判斷字串組成,第一個必須是字母,後面可以是字母數字下劃線,總長度5-20

//判斷字串是否是這樣組成的,第一個必須是字母,後面可以是字母、數字、下劃線,總長度為5-20 var c = /^[a-zA-Z]\w{4,19}$/; // /是轉義 ^ 是開頭 [

C#表示式高效替換變數

有的時候我們需要進行簡單的字串變數替換. 當然最新的.net已經支援 {name} 這種替換方式. 但是,老的.net是不支援的. 本方法是把“{{varName}}” 這種變數替換成 對應的數值. 例如 Week1 = 星期一 Week2 = 星期二

C++利用表示式進行字串的替換

主要要加上標頭檔案#inlcude,這也是劍指offer上的題目 void replaceSpace(string str,int length) { string pattern=" "; regex re(p

Objective-C利用表示式進行搜尋時關鍵字的轉義

利用正則表示式進行搜尋時如果不對正則關鍵字進行轉義常常會造成搜尋結果的錯誤,如輸入?就會匹配到全部結果,就需要對搜尋關鍵字進行轉義處理: 匹配輸入字符串的結尾位置。如果設置了RegExp對象的Mult

表示式判斷文字框是否空的方法(更加嚴謹)

<script> //去掉左邊空格function ltrim(s) {  return s.replace(/(^\s*)/g, ''); } //去掉右邊空格function rtrim(s) { return s.replace(/(\s*$)/g, ''

C#】利用表示式判斷輸入是否純數字容器類

容器類、正則表示式在幾乎所有程式語言都存在的東西。很常用也很使用。下面用如下的一個控制檯小程式說明C#的正則表示式與容器類的應用。 開始直接輸出在C#定義好的資料字典Dictionary,這就是Java與Python的HashMap 之後定義一個存int的List,讓使用者

表示式判斷字串中是否有漢字

String ChineseCharactersStr = “這裡是漢字也有yingwen”; 需要匯入 import java.util.regex.Matcher; import java.u

Java 表示式判斷是否IP

/** 1. @Title:IpAddress.java 2. @Package:com.you.dao 3. @Description:用正則表示式判斷是否為IP 5. @date: 2014年3月4日 下午10:55:06 6. @Version V1.2.3 */ packa

【解決方案】表示式判斷字串是否全是空格

用正則表示式實現: var test = "   \n   "; //var test = "      "; if(test.match(/^\s+$/)){     console.log("all space or \\n") } if(test.match(/^

表示式判斷字串是否包含字母,數字,符號

str:要判斷的字元 1.判斷字串是否包含字母,數字符號 str.matches("^(?:(?=.*[0-9].*)(?=.*[A-Za-z].*)(?=.*[\\W].*))[\\W0-9A-Za-z]{8,16}$") 2.判斷字串是否包含大寫字母 str.ma

Java表示式判斷是否IP

程式碼 /** 1. @Title:IpAddress.java 2. @Package:com.you.dao 3. @Description:用正則表示式判斷是否為IP 5. @date: 2014年3月4日 下午10:55:0

使用表示式匹配中國運營商機號表示式(不含港澳臺地區)

匹配手機號碼的正則表示式:^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$ 目前匹配號段 中國電訊號段 133、149、153、173、177、180、181、189、199 中國聯通號段 130、131、132、145、155、156

jquery表示式驗證糾正版(機號身份證中文名稱)

最新福利:領取阿里雲1000通用代金券   <script type="text/javascript"> // 驗證中文名稱 function isChinaName(name) { var pattern = /^[\u4E00-\u9FA5]{1,6}$/; retu

Python 表示式(3)匹配機號

#匹配手機號 import re text="s127 3628391387 17648372936 183930627 1g82732973 28649703767" m=re.findall(r"1\d{10}",text) if m: print m el