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 相关文章推荐
js下弹出窗口的变通
Apr 18 Javascript
javascript面向对象之Javascript 继承
May 04 Javascript
页面右下角弹出提示框示例代码js版
Aug 02 Javascript
windows8.1+iis8.5下安装node.js开发环境
Dec 12 Javascript
javascript通过获取html标签属性class实现多选项卡的方法
Jul 27 Javascript
JQuery.Ajax()的data参数类型实例详解
Nov 20 Javascript
学习JavaScript事件流和事件处理程序
Jan 25 Javascript
JS身份证信息验证正则表达式
Jun 12 Javascript
JavaScript中的return布尔值的用法和原理解析
Aug 14 Javascript
Vue.js2.0中的变化小结
Oct 24 Javascript
webpack配置导致字体图标无法显示的解决方法
Mar 06 Javascript
一起来看看Vue的核心原理剖析
Mar 24 Vue.js
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邮件类
2007/01/03 PHP
PHP json_decode函数详细解析
2014/02/17 PHP
thinkphp配置连接数据库技巧
2014/12/02 PHP
smarty内置函数section的用法
2015/01/22 PHP
php封装的单文件(图片)上传类完整实例
2016/10/18 PHP
javascript实现简单查找与替换的方法
2015/07/22 Javascript
jquery实现输入框实时输入触发事件代码
2016/12/21 Javascript
Angular表格神器ui-grid应用详解
2017/09/29 Javascript
jQuery基于cookie实现换肤功能实例
2017/10/14 jQuery
windows系统下更新nodejs版本的方案
2017/11/24 NodeJs
代码实例ajax实现点击加载更多数据图片
2018/10/12 Javascript
webpack4.x CommonJS模块化浅析
2018/11/09 Javascript
微信小程序登录按钮遮罩浮层效果的实现方法
2018/12/16 Javascript
AntV F2和vue-cli构建移动端可视化视图过程详解
2019/10/08 Javascript
详解Webpack4多页应用打包方案
2020/07/16 Javascript
JavaScript判断数据类型有几种方法及区别介绍
2020/09/02 Javascript
[04:40]2016个国际邀请赛中国区预选赛场地——华西村观战指南
2016/06/25 DOTA
Python利用ansible分发处理任务
2015/08/04 Python
python3.0 模拟用户登录,三次错误锁定的实例
2017/11/02 Python
Pandas读取并修改excel的示例代码
2019/02/17 Python
详解python做UI界面的方法
2019/02/27 Python
Python3 集合set入门基础
2020/02/10 Python
Jupyter notebook快速入门教程(推荐)
2020/05/18 Python
CSS3动画之流彩文字效果+图片模糊效果+边框伸展效果实现代码合集
2017/08/18 HTML / CSS
Puritan’s Pride(普丽普莱)官方网站:美国最大最全的保健品公司之一
2016/10/23 全球购物
国际旅客访问北美最大的汽车租赁提供商:Alamo Rent A Car
2018/06/13 全球购物
介绍一下JMS编程步骤
2015/09/22 面试题
创业计划实施的7大步骤
2014/02/05 职场文书
元旦寄语大全
2014/04/10 职场文书
百日安全生产活动总结
2014/07/05 职场文书
浪漫婚礼主题活动策划方案
2014/09/15 职场文书
简易离婚协议书范本
2014/10/24 职场文书
师德师风个人总结
2015/02/06 职场文书
食堂管理制度范本
2015/08/04 职场文书
2019班干部竞选演讲稿范本!
2019/07/08 职场文书
Spring this调用当前类方法无法拦截的示例代码
2022/03/20 Java/Android