我正在使用 swiftValdator 框架进行 iOS 开发。我使用正则表达式创建了一个自定义验证器类。
错误是:
'NSInternalInconsistencyException', reason: 'Can't do regex matching, reason: Can't open pattern U_REGEX_MISSING_CLOSE_BRACKET (string lol, pattern ^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[,.:=+-_|)(%$#@!£/?';&"\])[A-Za-z0-9,.:=+-_|)(%$#@!]£/?';&"\]{8,32}, case 0, canon 0)'
这是我的代码:
import Foundation
import SwiftValidator
class CustomPasswordRule: RegexRule {
//^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[,.:=+\-_|)(%$#@!£/?`;&"\\])[A-Za-z\d,.:=+\-_|)(%$#@!£/?`;&"\\]{8,32}
static let regex = "^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[,.:=+-_|)(%$#@!£/?';&\"\\])[A-Za-z0-9,.:=+-_|)(%$#@!]£/?';&\"\\]{8,32}"
convenience init(message: String = "Not a valid Password") {
self.init(regex: CustomPasswordRule.regex,message: message)
}
}
谁能帮我解决这个错误?这些是条件:
- 密码长度必须在 8 到 32 个字符之间。
- 密码必须包含以下任意 3 个字符组合:
- 1 个大写(大写)字母 [A-Z]
- 1 个小写(常用)字母 [a-z]
- 1 个数字 [0-9]
- 1 符号 [, . := + - _ | ) ( % $ # @ ! £/\? ` ; & "]
最佳答案
""中的正则表达式没有正确转换,试试这个:
static let regex = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[,.:=+\\-_|)(%$#@!£/?`;&\"\\\\])[A-Za-z\\d,.:=+\\-_|)(%$#@!£/?`;&\"\\\\]{8,32}"
关于ios - 使用 swiftvalidator 的 swift 正则表达式出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36752334/