代码之家  ›  专栏  ›  技术社区  ›  Nimet

如何在regex密码模式中转义*

  •  0
  • Nimet  · 技术社区  · 2 年前

    我使用验证。js用于表单验证,并且有一个密码模式,我只允许以下特殊字符之一:-@_#+

    密码模式如下:

     password1: {
      pattern:/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[-!@_#+])(?=.{8,})/
    },
    

    但是,当我输入*、$或%字符作为密码输入时,不会给出错误消息。任何帮助都将不胜感激。 非常感谢。

    2 回复  |  直到 2 年前
        1
  •  0
  •   anotherGatsby    2 年前

    你并没有真正限制用户的输入选项,你的模式是: 从字符串的起始位置开始,检查它后面是否有小写字母,然后检查它后面是否有大写字母,后面是数字,然后是一些符号。

    没有什么可以限制用户的输入。自从 .* 将匹配任何不是行终止符的字符(\n、\r等)。

    你应该试试这样: /^([-\w!@#+]+){8,}$/
    在这里 \w 数学a-z,a-z,0-9和下划线。

    在这里测试正则表达式: https://regex101.com/r/TINm56/1

    enter image description here

        2
  •  -1
  •   Mehul Rathod    2 年前

    你的模式完全正确,我认为你的代码有错误。 所以请检查代码或回复代码链接