ios - 使用 swiftvalidator 的 swift 正则表达式出错?

标签 ios regex swift

我正在使用 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)
    } 
}

谁能帮我解决这个错误?这些是条件:

  1. 密码长度必须在 8 到 32 个字符之间。
  2. 密码必须包含以下任意 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/

相关文章:

ios - 解开分段字符串时发生 fatal error (swift3)

iphone - UIQueuingScrollView didScrollWithAnimation 中的断言失败 :force:

ruby-on-rails - 从 MatchData 中获取数据作为匹配函数的结果

java - java中如何按空格和一些特殊字符分割字符串

swift - 如何在 Swift 中为子类重写初始化器

iOS 表格 View 刷新问题

ios - 应用一段时间未使用后取消本地通知

用于自定义序列类型的 Python re

ios - 如何管理 iOS 中项目和框架之间的常见依赖关系

ios - 检查坐标是否在预定义区域内