iOS开发——手机号,密码,邮箱,身份证号,中文判断
???
???? 目前這些方面的判斷主要是用了正則表達式
?????
?
??? 手機號的判斷,目前主要是長度、均是數(shù)字,支持的號段由于第三方通訊比如京東通訊,小米通訊等支持的號段挺多,
??? 有171,170,135,147等等,所以號段限制簡單即可。
?? @"^((13[0-9])|(147)|(17[0-9])|(15[^4,\\D])|(18[0,0-9]))\\d{8}$"
??? 其實手機號格式主要是為了短信驗證,如果更簡單點保證11位數(shù)字即可。
?
?
??? 密碼驗證的條件比較多,除了位數(shù),是否包含空格(用string方法單獨判斷空格),有個可能是符號啊,正角半角啊。至少包含兩種字符啊。
??? NSString * regex = @"^(?![\\d]+$)(?![a-zA-Z]+$)(?![^\\da-zA-Z]+$).{6,18}$";
??????? NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
?????? BOOL isMatch = [pred evaluateWithObject:self.passwordField.currentString];
??????? if (isMatch == NO) { // 不符合上面的正則,提示
??????????
????????? 請輸入6-18位字符。僅支持數(shù)字、大寫字母、小寫字母和特殊符號,且至少包含其中2種
???????????
??????????? return;
????? }
????? 但密碼支持的較多字符時,有時可以單獨判斷密碼符合 ?密碼必須為unicode 0~127
????????? NSString * regex = @"^.*[\\u0000-\\u007f]{6,18}.*$";
??????????? NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
??????????? BOOL isMatch = [pred evaluateWithObject:self.passwordField.currentString];
??????????? if (isMatch ==NO) {
?????????????? ?
??????????????? [BlackShowView alertViewShowInContentView:self.contentView message:@"請不要輸入過于特殊的字符作為密碼"];
?????????????? ?
??????????????? return;
??????????? }
?
? ? 郵箱的判斷比較簡單
? ? @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
?
? ? 身份證號
??? @"^(\\d{14}|\\d{17})(\\d|[xX])$";
?
?
?? 還有有個比較常用的是判斷是否輸入了中文(注意此時是YES的狀態(tài),及不能包含中文)
?????? // 是否包含中文^.*[\u4e00-\u9fa5].*$
??????? {
??????????? NSString * regex = @"^.*[\u4e00-\u9fa5].*$";
??????????? NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
??????????? BOOL isMatch = [pred evaluateWithObject:self.accountField.currentString];
??????????? if (isMatch ==YES) {
?????????????? ?
??????????????? [BlackShowView alertViewShowInContentView:self.contentView message:@"賬號不能包含中文"];
?????????????? ?
??????????????? return;
??????????? }
?????? ?
?????? ?
??????? }
?
轉(zhuǎn)載于:https://www.cnblogs.com/LiuChengLi/p/5179980.html
總結(jié)
以上是生活随笔為你收集整理的iOS开发——手机号,密码,邮箱,身份证号,中文判断的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JSONObject和JSONArray
- 下一篇: PHP设计模式之适配器模式