我正在为此使用ValidateJS库。这是我正在使用的正则表达式,但它也接受不带数字的密码。
我的密码应为6到16个字符,长度至少为一位。
我希望它仅能接受密码:
mypass1
1mypass
my1pass
我至少有一个数字。
password: {
presence: true,
length: {
minimum: 6,
maximum: 16
},
format: {
pattern: "^.*(?=.{6,16})(?=.*[a-zA-Z])(?=.*\d)[a-zA-Z0-9!@#$%]+$",
message: "should contain at least one number"
}
},
答案 0 :(得分:1)
您可以使用此模式
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
答案 1 :(得分:1)
在密码验证中,前瞻性很好,请参见以下模式:(?=.{6,16})(?=.*\d).+
它使用两个积极的前瞻:
(?=.{6,16})
-确保我们至少有6个字符,最多16个字符
(?=.*\d).+
-确保我们至少有一位数字
更多详细信息:
.{6, 16}
-匹配6到16个任意字符
.*
-匹配零个或多个任何字符
\d
-匹配数字
.+
-匹配任意一个或多个字符。
答案 2 :(得分:0)
替换它,它将为您服务
format: {
pattern: "^(?=.{6,16})(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$",
message: "should contain at least one number"
}