正则表达式

简单的理解正则

1. 匹配开始与结束 定位符

// 以 a 开始
var startReg = /^a/;

// 以 a 结束
var endReg = /a$/;
复制代码

2. 组合匹配

使用()表示一个组合,正确的理解是,这个子匹配项

var testCom = /(abc)(def)(hig)/
复制代码

3. 匹配次数

在正则中标准叫法: 限定符

匹配次数的写法与集合的书写方式类似,使用 {}来表示

  • {0,} 匹配次数 >= 0, 简单的写法: *

  • {1,} 匹配次数 >= 1, 简单的写法: +

  • {0, 1} 匹配次数 >= 0 && <= 1, 简单的写法: ?

() 和 []

  1. () 表示子正则(子组合)表示式开始和结束的位置
// 使用()和没有使用组的区别
var userCom = /onezoo{1,10}/;
var unUserCom = /one(zoo){1,10}/
复制代码

  1. [] 中括号表示组合中的一个被匹配到
// 匹配其中之一
var test01 = /[abc012]/
var test01_02 = /a|b|c/
// 配合 - 使用,表示直接
var test02 = /[a-z0-3]/
复制代码

实例

  1. 邮件匹配
var emalReg = /[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
复制代码

  1. 手机号
var telReg = /^1[34578]\d{9}$/;
复制代码

3.url

var urlReg = /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/
复制代码

  1. 日期格式
var dataFormatReg = /Invalid|NaN/
复制代码

  1. ISO日期格式
var ISODataFormatReg = /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/;
复制代码

  1. 身份证号码
var idcard = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)/
复制代码

参考

  1. regexper.com

  2. MDN正则表达式

说明

在 《JavaScript》语言精粹里面,全部都是使用这种类似铁路图进行说明,图文结合真的是一种很明确、很清晰讲述和学习的方式!

后续更新,保存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值