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

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,})(?=.*[!@#$%^&*\(\)]).*$/;

代码分析:

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

(有空再补充)

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

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

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

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

前端js常用正则表达式实例讲解的更多相关文章

  1. JS常用正则表达式备忘录

    摘要: 玩转正则表达式. 原文:JS常用正则表达式备忘录 作者:前端小智 Fundebug经授权转载,版权归原作者所有. 正则表达式或"regex"用于匹配字符串的各个部分 下面是 ...

  2. js常用正则表达式,滚蛋吧!你们测试组bug,让你挑

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  3. js常用正则表达式2

    字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界. -或- 对 ...

  4. 前端JS常用字符串处理实例

    字符串处理常常用在处理服务器回传的数据.动态拼接生成html等,是前端面试的必考题. 我觉得字符串处理这种常用到的,一定要了然于心,不然用到时急急忙忙去翻手册费半天. 入正题,首先提出平常遇到的几个需 ...

  5. js 常用正则表达式表单验证代码

    正则表达式使用详解 简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具.其作用如下:测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一 ...

  6. Vue.js 基础指令实例讲解(各种数据绑定、表单渲染大总结)——新手入门、高手进阶

    Vue.js 是一套构建用户界面的渐进式框架.他自身不是一个全能框架--只聚焦于视图层.因此它非常容易学习,非常容易与其它库或已有项目整合.在与相关工具和支持库一起使用时,Vue.js 也能完美地驱动 ...

  7. js常用正则表达式表单验证代码

    方法一:  var re=/正则表达式/;  re.test($("txtid").val())  方法二:  $("txtid").val.match(/正则 ...

  8. JS常用正则表达式和JS控制输入框输入限制(数字、汉字、字符)

    验证数字:^[0-9]*$验证n位的数字:^\d{n}$验证至少n位数字:^\d{n,}$验证m-n位的数字:^\d{m,n}$验证零和非零开头的数字:^(0|[1-9][0-9]*)$验证有两位小数 ...

  9. js常用正则表达式汇总

    常用的前台正则表达式汇总. 1.手机号验证 手机格式以1开头,现有的手机格式一般为13.14.15.17.18等 var regMobile = /^1[34578]\d{9}$/; //或者为/^1 ...

随机推荐

  1. Android实现本地图片选择及预览缩放效果仿春雨医生

    在做项目时常常会遇到选择本地图片的需求.曾经都是懒得写直接调用系统方法来选择图片.可是这样并不能实现多选效果.近期又遇到了,所以还是写一个demo好了.以后也方便使用.还是首先来看看效果 显示的图片使 ...

  2. javascript进阶教程第一章案例实战

    javascript进阶教程第一章案例实战 一.学习任务 通过几个案例练习回顾学过的知识 通过练习积累JS的使用技巧 二.实例 练习1:删除确认提示框 实例描述: 防止用户小心单击了“删除”按钮,在用 ...

  3. HTTP -- 请求/响应 结构

    一:一个HTTP请求报文由四个部分组成:请求行.请求头部.空行.请求数据. 1.请求行 1.请求方法:GET POST 2.URL字段 3.HTTP版本字段 2.请求头 1.Accept:浏览器可接受 ...

  4. Kinect 开发 —— Hello,Kinect

    控制台输出深度数据: using System; using System.Collections.Generic; using System.Linq; using System.Text; usi ...

  5. CMDB学习之一

    CMDB - 配置管理数据库 资产管理 自动化相关的平台(基础 CMDB): 1. 发布系统 2. 监控 3. 配管系统.装机 4. 堡垒机 CMDB的目的: 1. 替代EXCEL资产管理 —— 资产 ...

  6. 【Python】【Head First Python】【chapter1】2 - sys.stdout 和 print 的区别

    sys.stdout 和 print 的区别 首先,通过 help(print) 得到print内建函数的参数 Help on built-in function print in module bu ...

  7. Exclusive or

    题目连接 题意: 每次给一个n.求 (2≤n<10500) 分析: 先说一下自己的想法,假设将n换成二进制数,也就一两千位左右,那么一位一位处理是能够接受的. 将0-n写成二进制形式后,显然全部 ...

  8. php数组插入数据

    php数组插入数据 一.总结 代码要多敲,看是看不会的 php代码直接在页面不好敲,可以去控制器里面敲 二.目标 在一组数中,要求插入一个数,按其原来顺序插入,维护原来排序方式. 三.代码 (1).思 ...

  9. dump var_dump print print_r的区别

    dump var_dump print print_r的区别 一.总结 用dump()来打印就对了 1.echo和print:不能打印复合型和资源型数据: 2.var_dump()和print_r() ...

  10. Vue的全选功能实现思路

    全选功能的实现主要分两步: 1. 点击全选框选中所有选择框. 2. 当所有选择框都被选中时,勾选全选框. 详细思路: 1. 点击全选框选中所有选择框: 给全选框绑定一个值,然后添加change时间,当 ...