|
@@ -8,16 +8,6 @@
|
|
|
|
|
|
import Foundation
|
|
|
|
|
|
-
|
|
|
-//let kUserNameRegex = "^[A-Za-z0-9]{8,15}$"
|
|
|
-/// 用户密码验证(允许使用小写字母、数字,一共8~15个字符)
|
|
|
-let kUserPasswordRegex = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,15}$"
|
|
|
-/// 用户名验证(允许使用小写字母、数字,一共6~20个字符)
|
|
|
-let kUserNameRegex = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$"
|
|
|
-
|
|
|
-/// 字符密码不能连续6位
|
|
|
-let kPayPasswordRegex = "^\\d{6}$"
|
|
|
-
|
|
|
/// Email验证
|
|
|
let kEmailRegex = "^([a-z0-9_\\.-]+)@([\\da-z\\.-]+)\\.([a-z\\.]{2,6})$"
|
|
|
|
|
@@ -33,6 +23,19 @@ let kIPRegex = "^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[
|
|
|
///html标签验证
|
|
|
let kHTMLRegex = "^<([a-z]+)([^<]+)*(?:>(.*)<\\/\\1>|\\s+\\/>)$"
|
|
|
|
|
|
+// /6-16位数字字母混合,不能全为数字,不能全为字母,首位不能为数字
|
|
|
+let kCharacterCombinationRegex = "^(?![0-9])(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,16}$"
|
|
|
+/// 字符密码不能连续6位
|
|
|
+let kSixContinuousRegex = "^\\d{6}$"
|
|
|
+///6位顺增
|
|
|
+let kSixDigitsIncreaseRegex = "^(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){5}\\d$"
|
|
|
+///6位顺降
|
|
|
+let kSixDigitsDownRegex = "^(?:9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=0)){5}\\d$"
|
|
|
+///6位顺降或6位顺增
|
|
|
+let kSixDigitsIncreaseOrDigitsDownRegex = "^(?:(?:0(?=1)|1(?=2)|2(?=3)|3(?=4)|4(?=5)|5(?=6)|6(?=7)|7(?=8)|8(?=9)){5}|(?:9(?=8)|8(?=7)|7(?=6)|6(?=5)|5(?=4)|4(?=3)|3(?=2)|2(?=1)|1(?=0)){5})\\d$"
|
|
|
+///3位以上的重复数字
|
|
|
+let kThreeDuplicateNumbersRegex = "^([\\d])\\1{2,}"
|
|
|
+
|
|
|
/// 基于NSRegularExpression api 的正则处理工具类
|
|
|
public struct Regex {
|
|
|
|
|
@@ -193,35 +196,71 @@ extension Regex {
|
|
|
|
|
|
//正则匹配结果
|
|
|
extension Regex {
|
|
|
-
|
|
|
- /// 验证密码是否正确
|
|
|
- ///
|
|
|
- /// - Parameter userPassword: 用户密码
|
|
|
+
|
|
|
+ /// 密码组合验证
|
|
|
/// - Returns: Bool
|
|
|
- public static func isUserPasswordTrue(userPassword:String = "") -> Bool {
|
|
|
+ static func isCharacterCombinationRegex(str:String = "") -> Bool {
|
|
|
//初始化正则工具类
|
|
|
- let regex = try! Regex(kUserPasswordRegex)
|
|
|
- if regex.matches(userPassword) {
|
|
|
+ let regex = try! Regex(kCharacterCombinationRegex)
|
|
|
+ if regex.matches(str) {
|
|
|
return true
|
|
|
}else{
|
|
|
- SwiftProgressHUD.shared().showText("请输入8-15位数字,字母组合")
|
|
|
return false
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- /// 验证用户名是否正确
|
|
|
+
|
|
|
+
|
|
|
+ /// 是否6位顺增
|
|
|
///
|
|
|
- /// - Parameter userName: 用户密码
|
|
|
- /// - Returns: Bool
|
|
|
- public static func isUserNameTrue(userName:String = "") -> Bool {
|
|
|
+ /// - Returns: s
|
|
|
+ static func isSixDigitsIncreaseRegex(str:String = "") -> Bool {
|
|
|
+ //初始化正则工具类
|
|
|
+ let regex = try! Regex(kSixDigitsIncreaseRegex)
|
|
|
+ if regex.matches(str) {
|
|
|
+ return true
|
|
|
+ }else{
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// 是否6位顺减
|
|
|
+ ///
|
|
|
+ /// - Returns: s
|
|
|
+ static func isSixDigitsDownRegex(str:String = "") -> Bool {
|
|
|
+ //初始化正则工具类
|
|
|
+ let regex = try! Regex(kSixDigitsDownRegex)
|
|
|
+ if regex.matches(str) {
|
|
|
+ return true
|
|
|
+ }else{
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// 是否6位顺减或顺增
|
|
|
+ ///
|
|
|
+ /// - Returns: s
|
|
|
+ static func isSixDigitsIncreaseOrDigitsDownRegex(str:String = "") -> Bool {
|
|
|
//初始化正则工具类
|
|
|
- let regex = try! Regex(kUserNameRegex)
|
|
|
- if regex.matches(userName) {
|
|
|
+ let regex = try! Regex(kSixDigitsIncreaseOrDigitsDownRegex)
|
|
|
+ if regex.matches(str) {
|
|
|
return true
|
|
|
}else{
|
|
|
- SwiftProgressHUD.shared().showText("请输入6-20位数字,字母组合")
|
|
|
return false
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /// 是否3位以上的重复数字
|
|
|
+ ///
|
|
|
+ /// - Returns: s
|
|
|
+ static func isThreeDuplicateNumbersRegex(str:String = "") -> Bool {
|
|
|
+ //初始化正则工具类
|
|
|
+ let regex = try! Regex(kThreeDuplicateNumbersRegex)
|
|
|
+ if regex.matches(str) {
|
|
|
+ return true
|
|
|
+ }else{
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|