html5提供正则表达式验证,关于正则表达式:HTML5模式验证

我正在尝试创建具有以下要求的密码字段。

至少8个字符

最多16个字符

必须包含一个数字或特殊字符

只能使用以下特殊字符:

,` ~!@#$%^&*);'[]"。

我阅读了这个堆栈溢出问题,并试图跟踪示例中发生的事情。这就是我想到的:

^[a-zA-Z](?=.*[0-9.,`~!@#$%^&*\);'\[\]"\{\}.]).{8,16}+

这就是我使用模式的方式:

然而,这个regex表达式似乎没有按预期工作。如果我输入"密码",它将被拒绝。相反,接受这个字符串。如果有人能帮我一把,我会非常感激的。

是否有创建密码字段并使用regex的代码?

为什么你的regex一开始就有[a-zA-Z]?您不需要字符串以ASCII字母开头。

密码字段只是表单中的一个输入字段。我刚才在我原来的帖子里加了一个例子。

"我正试图创建一个具有以下要求的密码字段"-请不要这样做。没有什么比偏离我通常创建密码的"方案"更烦人的了,仅仅是因为一些网站认为它更了解"安全性"是什么…

以下是如何使用pattern属性:

input:valid {

color: green;

}

input:invalid {

color: red;

}

您只需要在字符类中"转义"双引号作为\x22和]符号。

由于默认情况下会锚定pattern,因此不需要锚定。

注意,{8,16}+是一个在js regex中不支持的所有格限制量词,忽略+。&可以用作文字。单撇号也一样。双引号需要像\x22那样"规范化"。这里不需要^和$,模式后来被^(?:和)包围。

在模式中使用此regex以确保密码同时包含字母和数字/符号:

^(?=.*[a-z])(?=.*[\d,`~!@#$%^&*);'[\]\x22{}]).{8,16}$

可能会有进一步的改进。

下面的代码将根据您的规则检查您的密码(尽管在2个regex中)

var psw = 'yourPas$word';

if (

// ensure the length is between 8 & 16

/^.{8,16}$/.test(psw) &&

// ensure the presence of a special char

/^.*[,`~!@#$%^&*);'\[\]"{}.].*$/.test(psw)

) {

console.log('hurray is valid');

} else {

console.log('booo');

}

感谢您的回复,Matyas!是否可以在一行中作为一个输入模式来执行此操作?例:。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值