常用正则表达式

下面是开发中经常使用到的正则表达式。

//MARK:- 正则匹配手机号
class func checkMobile(_ mobileNumbel:String) ->Bool{
let pattern = "^(13[0-9]|15[0-9]|18[0-9]|17[0-9]|147)\\d{8}$"
let pred = NSPredicate(format: "SELF MATCHES %@", pattern)
let isMatch:Bool = pred.evaluate(with: idCard)
return isMatch;
}
//MARK:- 正则匹配用户身份证号15或18位
class func checkUserIdCard(_ idCard:String) ->Bool {
let pattern = "(^[0-9]{15}$)|([0-9]{17}([0-9]|X)$)";
let pred = NSPredicate(format: "SELF MATCHES %@", pattern)
let isMatch:Bool = pred.evaluate(with: idCard)
return isMatch;
}
//MARK:- 正则匹配用户密码6-18位数字和字母组合
class func checkPassword(_ password:String) ->Bool {
let pattern = "^(?![0-9]+$)(?![a-zA-Z]+$)[a-zA-Z0-9]{6,18}"
let pred = NSPredicate(format: "SELF MATCHES %@", pattern)
let isMatch:Bool = pred.evaluate(with: password)
return isMatch;
}
//MARK:- 正则匹配URL
class func checkURL(_ url:String) ->Bool {
let pattern = "^[0-9A-Za-z]{1,50}"
let pred = NSPredicate(format: "SELF MATCHES %@", pattern)
let isMatch:Bool = pred.evaluate(with: url)
return isMatch;
}
//MARK:- 正则匹配用户姓名,20位的中文或英文
class func checkUserName(_ userName:String) ->Bool {
let pattern = "^[a-zA-Z\\u4E00-\\u9FA5]{1,20}"
let pred = NSPredicate(format: "SELF MATCHES %@", pattern)
let isMatch:Bool = pred.evaluate(with: userName)
return isMatch;
}
//MARK:- 正则匹配用户email
class func checkEmail(_ email:String) ->Bool {
let pattern = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"
let pred = NSPredicate(format: "SELF MATCHES %@", pattern)
let isMatch:Bool = pred.evaluate(with: email)
return isMatch;
}
//MARK:- 只能是中文
class func isChinese(_ str:String) ->Bool {
let pattern = "^[\\u4e00-\\u9fa5]{0,}$"
let pred = NSPredicate(format: "SELF MATCHES %@", pattern)
let isMatch:Bool = pred.evaluate(with: str)
return isMatch;
}
//MARK:- 正则匹配金额
class func checkMoney(_ str:String) ->Bool {
let pattern = "^[0-9]+(.[0-9]{2})?$"
let pred = NSPredicate(format: "SELF MATCHES %@", pattern)
let isMatch:Bool = pred.evaluate(with: str)
return isMatch;
}