【问题标题】:Vee Validate: SyntaxError: Invalid regular expressionVee 验证:SyntaxError:无效的正则表达式
【发布时间】:2020-05-01 19:32:27
【问题描述】:

我使用 VeeValidate 和正则表达式作为密码,要求:至少两个字符,大写、小写、数字和符号。

v-validate="required|min:8|max:20|regex:/^(?=(.*?[a-z].*?[A-Z])|(.*?[a-z].*?[0-9])|(.*?[a-z].*?[!@#$%^&*()_+])|(.*?[A-Z].*?[0-9])|(.*?[A-Z].*?[!@#$%^&*()_+])|(.*?[0-9].*?[!@#$%^&*()_+])).*$/"

但是浏览器显示错误信息:

[Vue 警告]:观察者“值”的回调错误:“SyntaxError:无效的正则表达式: //^(?=(.?[a-z].?[A-Z])/: 未终止组"

感谢支持。

Error stacktrace

【问题讨论】:

    标签: vue.js vee-validate


    【解决方案1】:

    我们应该改用规则的对象格式。

    注意!

    你不应该使用管道'|'或逗号“,”在您的常规 使用字符串规则格式时的表达式,因为它会导致 与验证器解析的工作方式冲突。你应该使用对象 而是使用规则格式。

    v-validate="{required: true, min:8, max:20,
    regex:/^(?=(.*?[a-z].*?[A-Z])|(.*?[a-z].*?[0-9])|(.*?[a-z].*?[!@#$%^&*()_+])|(.*?[A-Z].*?[0-9])|(.*?[A-Z].*?[!@#$%^&*()_+])|(.*?[0-9].*?[!@#$%^&*()_+]))/}"
    

    更新最新的正则表达式:至少两个字符,大写、小写、数字和符号。

    v-validate="{required: true, min:8, max:20,
    regex:/^(?=(.*?[a-z].*?[A-Z])|(.*?[A-Z].*?[a-z])|(.*?[a-z].*?[0-9])|(.*?[0-9].*?[a-z])|(.*?[a-z].*?[!@#$%^&*()_+])|(.*?[!@#$%^&*()_+].*?[a-z])|(.*?[A-Z].*?[0-9])|(.*?[0-9].*?[A-Z])|(.*?[A-Z].*?[!@#$%^&*()_+])|(.*?[!@#$%^&*()_+].*?[A-Z])|(.*?[0-9].*?[!@#$%^&*()_+])|(.*?[!@#$%^&*().*?[0-9]_+])).*$/}"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-29
      • 2023-03-06
      • 2017-02-07
      • 1970-01-01
      • 2018-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多