正規表示式

2021-07-25 03:18:34 字數 4747 閱讀 3268

#pragma

正則匹配手機號

+ (bool

)checktelnumber:(nsstring *) telnumber "

; nspredicate *pred = [nspredicate predicatewithformat:

@"self matches %@"

, pattern];

bool

ismatch = [pred evaluatewithobject:telnumber];

return

ismatch; }

#pragma

正則匹配使用者密碼6-

18位數字和字母組合

+ (bool

)checkpassword:(nsstring *) password "

; nspredicate *pred = [nspredicate predicatewithformat:

@"self matches %@"

, pattern];

bool

ismatch = [pred evaluatewithobject:password];

return

ismatch;

} #pragma

正則匹配使用者姓名,20

位的中文或英文

+ (bool

)checkusername : (nsstring *) username "

; nspredicate *pred = [nspredicate predicatewithformat:

@"self matches %@"

, pattern];

bool

ismatch = [pred evaluatewithobject:username];

return

ismatch;

} #pragma

正則匹配使用者身份證號15或

18位+ (

bool

)checkuseridcard: (nsstring *) idcard

nsstring *regex2 =

@"^(^[1-9]\\d((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d$)|(^[1-9]\\d[1-9]\\d((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])((\\d)|\\d[xx])$)$";

nspredicate *identitycardpredicate = [nspredicate predicatewithformat:

@"self matches %@"

,regex2];

return

[identitycardpredicate evaluatewithobject:idcard]; }

#pragma

正則匹配郵箱

+ (bool

) checkuseremail:(nsstring *)email "

; nspredicate *emailtest = [nspredicate predicatewithformat:

@"self matches %@"

, emailregex];

return

[emailtest evaluatewithobject:email]; }

#pragma

正則匹配銀行卡號

+ (bool

)checkuserbanknumber:(nsstring *)banknumber$|^\\d[- ]\\d$|^\\d[- ]\\d[- ]\\d[- ]\\d$";

nspredicate *identitycardpredicate = [nspredicate predicatewithformat:

@"self matches %@"

,regex2];

return

[identitycardpredicate evaluatewithobject:banknumber];

} #pragma

正則匹配用驗證身份證戶身份證號15或

18位+ (

bool

) validateidentitycard: (nsstring *)value

nsstring *mmdd =

@"(((0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)(0[1-9]|[12][0-9]|30))|(02(0[1-9]|[1][0-9]|2[0-8])))";

nsstring *leapmmdd =

@"0229";

nsstring *year =

@"(19|20)[0-9]";

nsstring *leapyear =

@"(19|20)(0[48]|[2468][048]|[13579][26])";

nsstring *yearmmdd = [nsstring stringwithformat:

@"%@%@"

, year, mmdd];

nsstring *leapyearmmdd = [nsstring stringwithformat:

@"%@%@"

, leapyear, leapmmdd];

nsstring *yyyymmdd = [nsstring stringwithformat:

@"((%@)|(%@)|(%@))"

, yearmmdd, leapyearmmdd,

@"20000229"];

nsstring *area =

@"(1[1-5]|2[1-3]|3[1-7]|4[1-6]|5[0-4]|6[1-5]|82|[7-9]1)[0-9]";

nsstring *regex = [nsstring stringwithformat:

@"%@%@%@"

, area, yyyymmdd  ,

@"[0-9][0-9xx]"];

nspredicate *regextest = [nspredicate predicatewithformat:

@"self matches %@"

, regex]; if

(![regextest evaluatewithobject:value])

intsummary = ([value substringwithrange:nsmakerange(0,

1)].intvalue + [value substringwithrange:nsmakerange(10,

1)].intvalue) *

7+ ([value substringwithrange:nsmakerange(1,

1)].intvalue + [value substringwithrange:nsmakerange(11,

1)].intvalue) *

9+ ([value substringwithrange:nsmakerange(2,

1)].intvalue + [value substringwithrange:nsmakerange(12,

1)].intvalue) *

10+ ([value substringwithrange:nsmakerange(3,

1)].intvalue + [value substringwithrange:nsmakerange(13,

1)].intvalue) *

5+ ([value substringwithrange:nsmakerange(4,

1)].intvalue + [value substringwithrange:nsmakerange(14,

1)].intvalue) *

8+ ([value substringwithrange:nsmakerange(5,

1)].intvalue + [value substringwithrange:nsmakerange(15,

1)].intvalue) *

4+ ([value substringwithrange:nsmakerange(6,

1)].intvalue + [value substringwithrange:nsmakerange(16,

1)].intvalue) *

2+ [value substringwithrange:nsmakerange(7,

1)].intvalue *

1+ [value substringwithrange:nsmakerange(8,

1)].intvalue *

6+ [value substringwithrange:nsmakerange(9,

1)].intvalue *3;

nsinteger remainder = summary % 11;

nsstring *checkbit =

@"";

nsstring *checkstring =

@"10x98765432";

checkbit = [checkstring substringwithrange:nsmakerange(remainder,

1)];

// 判斷校驗位

return

[checkbit isequaltostring:[[value substringwithrange:nsmakerange(17,

1)] uppercasestring]]; }

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...