博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
正则表达式
阅读量:6501 次
发布时间:2019-06-24

本文共 1519 字,大约阅读时间需要 5 分钟。

简单的理解正则

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)/复制代码

参考

说明

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

后续更新,保存

转载地址:http://kfxyo.baihongyu.com/

你可能感兴趣的文章
HTML5 Canvas 数据持久化存储之属性列表
查看>>
深入理解Javascript原型关系
查看>>
每个人都能实现的vue自定义指令
查看>>
腾讯云运维干货沙龙-海量运维实践大曝光 (二)
查看>>
python下pyodbc连接sybase
查看>>
nginx lua重置请求参数及常量备忘
查看>>
常用JavaScript操作CSS方法总结
查看>>
Fast Wait-free Queue
查看>>
分析 Dropout
查看>>
Netty4.x 源码实战系列(三):NioServerSocketChannel全剖析
查看>>
一张图看懂laravel的API(passport)工作流程
查看>>
服务端事件EventSource揭秘
查看>>
入门node.js你必须知道的那些事
查看>>
Web网站压力及性能测试
查看>>
数据结构与算法:二叉树算法
查看>>
2017-09-16 前端日报
查看>>
如何构建开源库的自动编译
查看>>
【iOS】Masonry和FDTemplateLayoutCell搭配使用「UITableview自适应内容高度」
查看>>
python中的闭包函数
查看>>
Android应用开发—数据更新问题的思考
查看>>