JS正则:密码强度8位以上,且包含大小写字母、数字、半角英文符号

正则代码

/^(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[\x21-\x2f\x3a-\x40\x5b-\x60\x7B-\x7F])[\da-zA-Z\x21-\x2f\x3a-\x40\x5b-\x60\x7B-\x7F]{8,}$/

本正则规则

  • 包含数字

  • 包含大写字母

  • 包含小写字母

  • 包含英文标点符号

  • 至少8位以上

    以上条件必须全部满足,则可以通过验证

正则解读:

/^$/规则

^匹配开始

$匹配结束

注意:在^字符集匹配规则内[],表示取反。

例如html标签匹配 /<[^>]+>/可以匹配<h1>

/<[^>]+>/.test('<h1>')
//true

(?=.*\d) 规则

此正则参照MDN正则规则中的x(?=y)的使用说明:

匹配'x'仅仅当'x'后面跟着'y'.这种叫做先行断言。

例如,/Jack(?=Sprat)/会匹配到'Jack'仅当它后面跟着'Sprat'。/Jack(?=Sprat|Frost)/匹配‘Jack’仅当它后面跟着'Sprat'或者是‘Frost’。但是‘Sprat’和‘Frost’都不是匹配结果的一部分。

[\da-zA-Z\x21-\x2f\x3a-\x40\x5b-\x60\x7B-\x7F]

JS正则匹配半角英文符号

测试

let reg = /^(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[\x21-\x2f\x3a-\x40\x5b-\x60\x7B-\x7F])[\da-zA-Z\x21-\x2f\x3a-\x40\x5b-\x60\x7B-\x7F]{8,}$/;

reg.test('abcd6789&*(')
//false
reg.test('abcdD6789&*(')
//true
reg.test('abcd')
//false
reg.test('abcdABCD!@')
//false
reg.test('abcdABCD23456')
//false
reg.test('abcdABCD23456..')
//true

参考:


  1. JS正则表达式必须包含数字、字母、特殊字符 ↩︎

  2. MDN 正则规则 ↩︎

  3. JS正则匹配半角英文符号 ↩︎

posted @   JoVee  阅读(4114)  评论(0编辑  收藏  举报
编辑推荐:
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
阅读排行:
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· RFID实践——.NET IoT程序读取高频RFID卡/标签
点击右上角即可分享
微信分享提示