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 Archive Network 集合
May 12 Javascript
用dom+xhtml+css制作的一个相册效果代码打包下载
Jan 24 Javascript
javascript 面向对象继承
Nov 26 Javascript
Firefox下无法正常显示年份的解决方法
Sep 04 Javascript
Jquery时间轴特效(三种不同类型)
Nov 02 Javascript
Javascript基于AJAX回调函数传递参数实例分析
Dec 15 Javascript
js实现多图左右切换功能
Aug 04 Javascript
js仿支付宝多方框输入支付密码效果
Sep 27 Javascript
jQuery焦点图左右转换效果
Dec 12 Javascript
vue2.0 中#$emit,$on的使用详解
Jun 07 Javascript
微信小程序 MinUI组件库系列之badge徽章组件示例
Aug 20 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
Apr 06 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
欧美媒体选出10年前最流行的17部动画
2017/01/18 日漫
ThinkPHP3.1.3版本新特性概述
2014/06/19 PHP
深入浅析PHP7.0新特征(五大新特征)
2015/10/29 PHP
php实现每日签到功能
2018/11/29 PHP
javascript比较文档位置
2008/04/08 Javascript
JQuery 获得绝对,相对位置的坐标方法
2010/02/09 Javascript
使用Js让Html中特殊字符不被转义
2013/11/05 Javascript
页面元素绑定jquery toggle后元素隐藏的解决方法
2014/03/27 Javascript
javascript中使用正则表达式清理table样式的代码
2020/04/01 Javascript
Javascript中Date类型和Math类型详解
2016/02/27 Javascript
详解Backbone.js框架中的模型Model与其集合collection
2016/05/05 Javascript
终于实现了!精彩的jquery弹幕效果
2016/07/18 Javascript
Web前端框架bootstrap实战【第一次接触使用】
2016/12/28 Javascript
vue项目中使用ueditor的实例讲解
2018/03/05 Javascript
vue打包之后生成一个配置文件修改接口的方法
2018/12/09 Javascript
vue+elementUI实现表单和图片上传及验证功能示例
2019/05/14 Javascript
浅谈Vue.set实际上是什么
2019/10/17 Javascript
vue 动态组件用法示例小结
2020/03/06 Javascript
JavaScript实现雪花飘落效果
2020/12/27 Javascript
[01:20:05]DOTA2-DPC中国联赛 正赛 Ehome vs VG BO3 第二场 2月5日
2021/03/11 DOTA
python生成指定尺寸缩略图的示例
2014/05/07 Python
python之pandas用法大全
2018/03/13 Python
Python批量合并有合并单元格的Excel文件详解
2018/04/05 Python
对python特殊函数 __call__()的使用详解
2019/07/02 Python
Python求解正态分布置信区间教程
2019/11/20 Python
利用Python中的Xpath实现一个在线汇率转换器
2020/09/09 Python
Python实现http接口自动化测试的示例代码
2020/10/09 Python
HTML5中语义化 b 和 i 标签
2008/10/17 HTML / CSS
党校培训思想汇报
2014/01/03 职场文书
《我不是最弱小的》教学反思
2014/02/23 职场文书
父母对孩子的寄语
2014/04/09 职场文书
小学安全汇报材料
2014/08/14 职场文书
2015年度房地产工作总结
2015/04/09 职场文书
Html5页面播放M4a音频文件
2021/03/30 HTML / CSS
图解排序算法之希尔排序Java实现
2021/06/26 Java/Android
Python进程间的通信之语法学习
2022/04/11 Python