IOS 常用正则汇总
1、验证手机号
//验证手机号
func validateMobile(strMobileNum:String)->Bool{
/**
// 手机号码
// 移动:134[0-8],135,136,137,138,139,150,151,157,158,159,182,183,184,187,188
// 联通:130,131,132,152,155,156,176,185,186
// 电信:133,1349,153,177,180,181,189
NSString *strNum = @"^1(34[0-8]|47[0-9]|(3[5-9]|5[017-9]|8[23478])\\d)\\d{7}$"; //移动
NSPredicate *regextest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",strNum];
if ([regextest evaluateWithObject:_strMobileNum] == YES)
return YES;
strNum = @"^1(3[0-2]|5[256]|8[56]|76)\\d{8}$"; //联通
regextest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",strNum];
if ([regextest evaluateWithObject:_strMobileNum] == YES)
return YES;
strNum = @"^1((33|53|77|8[019])[0-9]|349)\\d{7}$"; //电信
regextest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",strNum];
if ([regextest evaluateWithObject:_strMobileNum] == YES)
return YES;
*/
let strNum = "^(13|14|15|17|18)[0-9]{9}$";
let regextest = NSPredicate(format: "SELF MATCHES %@", strNum);
return regextest.evaluate(with: strMobileNum);
}
2、验证邮箱
//验证邮箱
func validateEmail(email:String)->Bool{
let emailRegex = "^([a-zA-Z0-9_\\.\\-])+\\@(([a-zA-Z0-9\\-])+\\.)+([a-zA-Z0-9])+$";
let emailTest = NSPredicate(format: "SELF MATCHES %@", emailRegex);
return emailTest.evaluate(with: email);
}
3、验证用户名
//用户名只能是字母、数字、中文
func validateUserName(strUserName:String)->Bool{
let predUserName = NSPredicate(format: "SELF MATCHES %@", "^[A-Za-z0-9\\u4e00-\\u9fa5]{2,20}$");
return predUserName.evaluate(with: strUserName);
}
更多 NSPredicate 对象的使用请参考如下文章:
【iOS开发技术】NSPredicate谓词的用法 数组过滤