如何在HTML输入模式中使用正则表达式要求某些字符并限制其他字符

如何在HTML输入模式中使用正则表达式要求某些字符并限制其他字符,html,regex,input,Html,Regex,Input,当用户输入新密码时,我希望他们能够看到自己的密码是否符合要求。我在输入标签中设置了一个Regex模式,如果不满足要求,输入框将以红色显示,表单将无法提交。这看起来像: 我把这个模式改编自。我的密码必须包含8-32个字符、一个大写字母、一个小写字母、一个特殊字符(!@#$%&?)和一个数字,这样就可以了。但是,我还想从输入中排除一些特殊字符,例如分号(;)。我尝试添加(?![;])如下: ((?=.*\d)(?=.[a-z])(?=.[a-z])(?=.[!@$%&])(?!.[;])。{8,3

当用户输入新密码时,我希望他们能够看到自己的密码是否符合要求。我在输入标签中设置了一个Regex模式,如果不满足要求,输入框将以红色显示,表单将无法提交。这看起来像:

我把这个模式改编自。我的密码必须包含8-32个字符、一个大写字母、一个小写字母、一个特殊字符(!@#$%&?)和一个数字,这样就可以了。但是,我还想从输入中排除一些特殊字符,例如分号(;)。我尝试添加
(?![;])
如下:

((?=.*\d)(?=.[a-z])(?=.[a-z])(?=.[!@$%&])(?!.[;])。{8,32}

不过,这打破了整个模式。有人能解释一下我做错了什么,我怎样才能改正它吗?或者最好是在用户每次按键时使用Javascript侦听器手动检查密码是否符合要求?

尝试:

((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@@#$%&?])(?!.*[;]).{8,32})
从您的正则表达式进行微调:

  • 将星号
    *
    添加回符号正向前瞻列表
    [!@$%&?]
  • 将星号
    *
    添加回符号
    [;]
  • 后需要星号
    *
    ,以便允许对任何字符(by
    )匹配多个字符(by
    *
    )。否则,您的正则表达式只允许在符号之前包含和排除一个字符。

    请尝试:
    (?!.[;])
    -请注意星号(
    *
    )。就像你对未来有着积极的展望。您可以在方括号内添加更多字符,如
    [;abc]
    将“禁止”字符
    ;abc