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