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 相关文章推荐
jquery打开直接跳到网页最下面、最低端实现代码
Apr 22 Javascript
javascript封装 Cookie 应用接口
Aug 07 Javascript
javascript与jquery中的this关键字用法实例分析
Dec 24 Javascript
Underscore源码分析
Dec 30 Javascript
基于javascript数组实现图片轮播
May 02 Javascript
微信小程序 navigation API实例详解
Oct 02 Javascript
js放大镜放大购物图片效果
Jan 18 Javascript
canvas实现简易的圆环进度条效果
Feb 28 Javascript
微信小程序自定义多选事件的实现代码
May 17 Javascript
Vue 自定义指令功能完整实例
Sep 17 Javascript
微信小程序实现拖拽功能
Sep 26 Javascript
js基于div丝滑实现贝塞尔曲线
Sep 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
PHP __autoload函数(自动载入类文件)的使用方法
2012/02/04 PHP
php判断上传的Excel文件中是否有图片及PHPExcel库认识
2013/01/11 PHP
php define的第二个参数使用方法
2013/11/04 PHP
zen cart实现订单中增加paypal中预留电话的方法
2016/07/12 PHP
laravel + vue实现的数据统计绘图(今天、7天、30天数据)
2018/07/31 PHP
响应鼠标变换表格背景或者颜色的代码
2009/03/30 Javascript
javascript 鼠标拖动图标技术
2010/02/07 Javascript
jquery插件制作简单示例说明
2012/02/03 Javascript
JavaScript 在网页上单击鼠标的地方显示层及关闭层
2012/12/30 Javascript
YUI Compressor压缩JavaScript原理及微优化
2013/01/07 Javascript
json的定义、标准格式及json字符串检验
2014/05/11 Javascript
JavaScript reduce和reduceRight详解
2016/10/24 Javascript
js判断一个字符串是以某个字符串开头的简单实例
2016/12/27 Javascript
ES6新特性八:async函数用法实例详解
2017/04/21 Javascript
原生javascript AJAX 三级联动的实现代码
2018/05/04 Javascript
微信小程序调用摄像头隐藏式拍照功能
2018/08/22 Javascript
Webpack设置环境变量的一些误区详解
2019/12/19 Javascript
JavaScript命令模式原理与用法实例详解
2020/03/10 Javascript
JavaScript基于用户照片姓名生成海报
2020/05/29 Javascript
[02:02:38]VG vs Mineski Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
初步理解Python进程的信号通讯
2015/04/09 Python
python 实现自动远程登陆scp文件实例代码
2017/03/13 Python
Python eval的常见错误封装及利用原理详解
2019/03/26 Python
Python Pandas数据结构简单介绍
2019/07/03 Python
Django中信号signals的简单使用方法
2019/07/04 Python
使用python matplotlib 画图导入到word中如何保证分辨率
2020/04/16 Python
用python批量移动文件
2021/01/14 Python
html5的websockets全双工通信详解学习示例
2014/02/26 HTML / CSS
荷兰多品牌网上鞋店:Stoute Schoenen
2017/08/24 全球购物
英国豪华文具和皮具配件经典老品牌:Smythson(斯迈森)
2018/04/19 全球购物
巴西补充剂和维生素购物网站:Natue
2019/06/17 全球购物
质监局领导班子践行群众路线整改方案
2014/10/26 职场文书
餐饮食品安全责任书
2015/01/29 职场文书
中秋节主题班会
2015/08/14 职场文书
2015年幼师个人工作总结
2015/10/15 职场文书
六种css3实现的边框过渡效果
2021/04/22 HTML / CSS