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 第二课 操作包装集元素代码
Mar 14 Javascript
js函数的引用, 关于内存的开销
Sep 17 Javascript
node.js入门教程迷你书、node.js入门web应用开发完全示例
Apr 06 Javascript
JavaScript实现列表分页功能特效
May 15 Javascript
jquery对象访问是什么及使用方法介绍
May 03 Javascript
Bootstrap富文本组件wysiwyg数据保存到mysql的方法
May 09 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
May 21 Javascript
Vue.js实战之组件之间的数据传递
Apr 01 Javascript
zTree异步加载展开第一级节点的实现方法
Sep 05 Javascript
vue.js中父组件调用子组件的内部方法示例
Oct 22 Javascript
原生JavaScript实现日历功能代码实例(无引用Jq)
Sep 23 Javascript
基于vue+element实现全局loading过程详解
Jul 10 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
什么是MVC,好东西啊
2007/05/03 PHP
php+mysql 实现身份验证代码
2010/03/24 PHP
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
2014/05/15 PHP
Jquery升级新版本后选择器的语法问题
2010/06/02 Javascript
javascript学习笔记(六) Date 日期类型
2012/06/19 Javascript
JsRender实用入门教程
2014/10/31 Javascript
JS判断客服QQ号在线还是离线状态的方法
2015/01/13 Javascript
JavaScript删除数组元素的方法
2015/03/20 Javascript
js实现带圆角的多级下拉菜单效果
2015/08/28 Javascript
ECMA5数组的新增方法有哪些及forEach()模仿实现
2015/11/03 Javascript
轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
2015/11/30 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
2016/01/05 Javascript
JavaScript判断DIV内容是否为空的方法
2016/01/29 Javascript
简单实现轮播图效果的实例
2016/07/15 Javascript
详解Angualr 组件间通信
2017/01/21 Javascript
jquery操作ul的一些操作笔记整理(干货)
2017/08/31 jQuery
浅析Visual Studio Code断点调试Vue
2018/02/27 Javascript
vue中前进刷新、后退缓存用户浏览数据和浏览位置的实例讲解
2018/09/21 Javascript
使用nodejs分离html文件里的js和css详解
2019/04/12 NodeJs
js canvas实现5张图片合成一张图片
2019/07/15 Javascript
通过实例了解Javascript柯里化流程
2020/03/03 Javascript
vue+echarts实现中国地图流动效果(步骤详解)
2021/01/27 Vue.js
[02:49]DOTA2完美大师赛首日观众采访
2017/11/23 DOTA
使用C语言扩展Python程序的简单入门指引
2015/04/14 Python
centos6.7安装python2.7.11的具体方法
2017/01/16 Python
django实现前后台交互实例
2017/08/07 Python
浅谈python装饰器探究与参数的领取
2017/12/01 Python
对PyQt5的输入对话框使用(QInputDialog)详解
2019/06/25 Python
python 有效的括号的实现代码示例
2019/11/11 Python
英国No.1文具和办公用品在线:Euroffice
2016/09/21 全球购物
Bulk Powders意大利:运动补充在线商店
2019/02/09 全球购物
为什么使用接口?
2014/08/13 面试题
软弱涣散基层党组织整改方案
2014/10/25 职场文书
幼师自荐信范文(2016推荐篇)
2016/01/28 职场文书
python实现Nao机器人的单目测距
2021/09/04 Python
Java 写一个简单的图书管理系统
2022/04/26 Java/Android