javascript正则表达式总结


Posted in Javascript onFebruary 29, 2016

工具

Regexpal是一个在线Javascript正则表达式处理器,地址是:http://www.regexpal.com

学习正则重要的是实践操作,不妨举个栗子:

匹配号码:707-827-7019

字符组匹配

[0-9][0-9][0-9]-[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]
\d匹配任意阿拉伯数字
\D匹配任何非阿拉伯数字

.匹配任意字符

\d\d\d\D\d\d\d\D\d\d\d\d\D
\d\d\d.\d\d\d.\d\d\d\d.

捕获分组与后向应用

用圆括号()创建分组,用\1来对捕获分组内容进行向后引用

(\d)\d\1   则匹配707

完整匹配号码:

^(\(\d{3}\)|^\d{3}[.-]?)?\d{3}[.-]?\d{4}$
^ 表示一行起始位置
( 表示捕获分组的起始符
\( 表示左括号
\d{3} 表示匹配三位数字
\) 表示右括号
| 表示选择
[.-]? 匹配一个可选的点号或连字符
) 捕获分组的结束符
? 表示分组可选
$ 表示行结束为止

边界

匹配行或字符串起始位置使用脱字符 ^
匹配行或字符串末尾位置使用美元符 $

量词

量词默认是贪心的
贪心的量词会首先匹配整个字符串。尝试匹配时,他会选定尽可能多的内容,也就是整个输入。量词首先匹配整个字符,如果失败则回退一个字符再次尝试。这个过程就叫做 回溯。
懒惰的量词是从目标的起始位置开始寻找匹配。每次检查字符串的一个字符,寻找他要匹配的内容。最后,他会尝试匹配整个字符串。
占有量词会覆盖整个目标,然后尝试寻找匹配内容,但是他只尝试一次,不会回溯。
如使用 .* 匹配任何字符零次或多次

贪心量词

使用花括号{}可限制某个模式在某个范围内匹配的次数,另外,未经修饰的量词就是贪心量词
7{1,}与7+
7{0,}与7*
7?与7{0,1}
本质上则是一样
7{m,n} 则会匹配m到n次

懒惰量词

末尾加上?则使量词变懒惰
7?? 首先7?匹配零个或一个7,懒惰后不会匹配任何内容
7*? 匹配零个7
7+? 匹配一个7
7{m,n}? 匹配m个7

关于正则匹配html,xml标签,下次再写

Javascript 相关文章推荐
Javascript实例教程(19) 使用HoTMetal(7)
Dec 23 Javascript
用js解决数字不能换行问题
Aug 10 Javascript
JQuery live函数
Dec 24 Javascript
判断多个input type=file是否有已经选择好文件的代码
May 23 Javascript
showModalDialog模态对话框的使用详解以及浏览器兼容
Jan 11 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
Jun 22 Javascript
three.js实现3D视野缩放效果
Nov 16 Javascript
详解JS模块导入导出
Dec 20 Javascript
详解关于vue-area-linkage走过的坑
Jun 27 Javascript
JS散列表碰撞处理、开链法、HashTable散列示例
Feb 08 Javascript
echarts实现晶体球面投影的实例教程
Oct 10 Javascript
vue-video-player视频播放器使用配置详解
Oct 23 Javascript
javascript计时器编写过程与实现方法
Feb 29 #Javascript
javascript插件开发的一些感想和心得
Feb 28 #Javascript
详解Javascript中的Object对象
Feb 28 #Javascript
Jquery跨浏览器文本复制插件Zero Clipboard的使用方法
Feb 28 #Javascript
JavaScript实现iframe自动高度调整和不同主域名跨域
Feb 27 #Javascript
Javascript技术栈中的四种依赖注入小结
Feb 27 #Javascript
javascript的 {} 语句块详解
Feb 27 #Javascript
You might like
全国FM电台频率大全 - 3 河北省
2020/03/11 无线电
ThinkPHP3.1新特性之G方法的使用
2014/06/19 PHP
PHP输入输出流学习笔记
2015/05/12 PHP
jQuery动态添加的元素绑定事件处理函数代码
2011/08/02 Javascript
javascript中方便增删改cookie的一个类
2012/10/11 Javascript
淘宝网提供的国内NPM镜像简介和使用方法
2014/04/17 Javascript
jquery如何把数组变为字符串传到服务端并处理
2014/04/30 Javascript
JavaScript中操作Mysql数据库实例
2015/04/02 Javascript
AngularJS中实现显示或隐藏动画效果的方式总结
2015/12/31 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
简单实现JavaScript弹幕效果
2020/08/27 Javascript
vue通过v-html指令渲染的富文本无法修改样式的解决方案
2020/05/20 Javascript
使用70行Python代码实现一个递归下降解析器的教程
2015/04/17 Python
Python装饰器实现几类验证功能做法实例
2017/05/18 Python
python抽取指定url页面的title方法
2018/05/11 Python
获取python的list中含有重复值的index方法
2018/06/27 Python
对python内置map和six.moves.map的区别详解
2018/12/19 Python
python 发送和接收ActiveMQ消息的实例
2019/01/30 Python
python调用Matplotlib绘制分布点图
2019/10/18 Python
python向图片里添加文字
2019/11/26 Python
python实现tail实时查看服务器日志示例
2019/12/24 Python
python itsdangerous模块的具体使用方法
2020/02/17 Python
jupyter lab文件导出/下载方式
2020/04/22 Python
手机端用rem+scss做适配的详解
2017/11/15 HTML / CSS
澳大利亚快时尚鞋类市场:Billini
2018/05/20 全球购物
印度尼西亚最好的小工具在线商店:Erafone.com
2019/03/26 全球购物
自动化专业个人求职信范文
2013/12/30 职场文书
水果连锁超市创业计划书
2014/01/24 职场文书
小学生勤俭节约演讲稿
2014/08/28 职场文书
效能风暴心得体会
2014/09/04 职场文书
英语四级考试作弊检讨书
2014/09/29 职场文书
公司辞职信模板
2015/05/13 职场文书
护士业务学习心得体会
2016/01/25 职场文书
导游词之山西祁县乔家大院
2019/10/14 职场文书
postman中form-data、x-www-form-urlencoded、raw、binary的区别介绍
2022/01/18 HTML / CSS
Python批量解压&压缩文件夹的示例代码
2022/04/04 Python