如何在正则表达式密码模式中转义 *
How to escape * in regex password pattern
我使用 validate.js 进行表单验证,并且有一个密码模式,我只想允许使用以下特殊字符之一:-!@_#+
密码格式如下:
password1: {
pattern:/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[-!@_#+])(?=.{8,})/
},
但是,当我输入 *、$ 或 % 字符作为密码输入时,没有给出错误消息。任何帮助,将不胜感激。
谢谢。
你并没有真正限制用户的输入选项,你的模式说:
从字符串的起始位置开始,检查是否后面跟着小写字母,然后检查后面是否跟着大写字母,然后是数字,然后是一些符号。
没有任何限制用户输入的内容。因为 .*
将匹配任何不是行终止符(\n、\r 等)的字符。
你应该尝试这样的事情:/^([-\w!@#+]+){8,}$/
这里 \w
数学运算 a-z、A-Z、0-9 和下划线。
在此处测试正则表达式:https://regex101.com/r/TINm56/1
我使用 validate.js 进行表单验证,并且有一个密码模式,我只想允许使用以下特殊字符之一:-!@_#+
密码格式如下:
password1: {
pattern:/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[-!@_#+])(?=.{8,})/
},
但是,当我输入 *、$ 或 % 字符作为密码输入时,没有给出错误消息。任何帮助,将不胜感激。 谢谢。
你并没有真正限制用户的输入选项,你的模式说: 从字符串的起始位置开始,检查是否后面跟着小写字母,然后检查后面是否跟着大写字母,然后是数字,然后是一些符号。
没有任何限制用户输入的内容。因为 .*
将匹配任何不是行终止符(\n、\r 等)的字符。
你应该尝试这样的事情:/^([-\w!@#+]+){8,}$/
这里 \w
数学运算 a-z、A-Z、0-9 和下划线。
在此处测试正则表达式:https://regex101.com/r/TINm56/1