• 前端js常用正则表达式实例讲解


    本文内容整理自他人优秀的博客,非纯原创。仅借此学习和整理。

    1.匹配用户名

    规则描述:

    • 长度4-6位: {4,16}
    • 字母: [a-z] [A-Z]
    • 数字: [0-9]
    • 下划线: [_]
    • 减号: [-]
    var usernameReg = /^[a-zA-Z0-9_-]{4,16}$/;

    代码分析:

    • ^: 匹配字符串的开始位置
    • []: 中括号表达式,字符集合,匹配所包含的任意一个字符
      • [xyz] :字符集合,匹配所包含的任意一个字符
      • [^xyz] :负值字符集合,匹配未包含的任意字符
    • -:a-z 表示范围连接符,最后一个-代表-本身
    • {}: 限定符
      • {n}: 匹配确定的n次
      • {n,}:至少匹配n次
      • {n,m}: 最少匹配n次且最多匹配m次
    • $: 匹配字符串结尾的位置

    2.匹配密码(简单)

    规则描述:

    • 长度6-16: {6,16}
    • 可以包含小写字母: [a-z]
    • 可以包含大写字母: [A-Z]
    • 可以包含数字: [0-9]
    • 可以包含下划线: [_]
    • 可以包含减号: [-]
    var pwdSingleReg = /^[w_-]{6,16}$/;

    代码分析:

    • w: 匹配字母、数字、下划线。等价于[A-Za-z0-9_]
      • W: 匹配非字母、数字、下划线。等价于[^A-Za-z0-9_]

    3.匹配密码(强)

    规则描述:

    • 长度6-16 {6,16}
    • 必须包含1个数字: [0-9]或d
    • 必须包含2个大写字母: [A-Z]
    • 必须包含2个小写字母: [a-z]
    • 必须包含1个特殊字符(键盘数字1234567890上标的字符): [!@#$%^&*()]
    var pwdStrongReg = /^.*(?=.{6,16})(?=.*d)(?=.*[A-Z]{2,})(?=.*[a-z]{2,})(?=.*[!@#$%^&*()]).*$/;

    代码分析:

    • .:匹配除换行符 之外的任何单字符
    • *:匹配前面的子表达式0次或多次
    • (?=pattern):零宽正向先行断言或叫正向肯定预查。在任何匹配pattern的字符串开始处匹配查找字符串。看概念不容易懂,这里有个菜鸟教程的例子:
      • "Windows(?=95|98|NT|2000)" 能匹配"Windows2000"中的"Windows",但不能匹配"Windows3.1"中的"Windows"
    • [!@#$%^&*?()]:()斜杠用作圆括号表达式转义

    (有空再补充)

     学习正则表达式参考文章:

    JS正则表达式大全(整理详细且实用)

    菜鸟教程:正则表达式 - 教程

    密码强度的正则表达式(JavaScript)总结

  • 相关阅读:
    词汇表处理脚本
    jLowNote又,我为什么要说又,有bug
    于是按照贴吧某同学的指教,把imageViewer里那个愚蠢的语句改了
    捉到Bug一只,jLowNote里的
    高产赛母猪
    我超喜欢Nimbus风格的!
    专注写记事本三十年
    秒秒钟食言
    别再打了,Java和Python,你们其实都是C
    电话本写完了,发个1.0吧
  • 原文地址:https://www.cnblogs.com/cathy1024/p/10372893.html
Copyright © 2020-2023  润新知