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 数组运用实现代码
Apr 13 Javascript
jQuery验证Checkbox是否选中的代码 推荐
Sep 04 Javascript
jquery 插件学习(六)
Aug 06 Javascript
js中的前绑定和后绑定详解
Aug 01 Javascript
JS小功能(操作Table--动态添加删除表格及数据)实现代码
Nov 28 Javascript
javascript的propertyIsEnumerable()方法使用介绍
Apr 09 Javascript
jQuery实现美观的多级动画效果菜单代码
Sep 06 Javascript
Ubuntu系统下Angularjs开发环境安装
Sep 01 Javascript
AnjularJS中$scope和$rootScope的区别小结
Sep 18 Javascript
JavaScript中如何判断一个值的类型
Sep 15 Javascript
浅谈Vue响应式(数组变异方法)
May 07 Javascript
es6数据变更同步到视图层的方法
Mar 04 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 解决utf-8和gb2312编码转换问题
2010/03/18 PHP
整理的9个实用的PHP库简介和下载
2010/11/09 PHP
php判断变量类型常用方法
2012/04/24 PHP
thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
2019/08/13 PHP
window.open被浏览器拦截后的自定义提示效果代码
2007/11/19 Javascript
让AJAX不依赖后端接口实现方案
2012/12/03 Javascript
jQuery学习笔记(3)--用jquery(插件)实现多选项卡功能
2013/04/08 Javascript
让页面上两个div中的滚动条(滑块)同步运动示例
2013/08/07 Javascript
js使用正则实现ReplaceAll全部替换的方法
2014/08/22 Javascript
让javascript加载速度倍增的方法(解决JS加载速度慢的问题)
2014/12/12 Javascript
javascript实现checkBox的全选,反选与赋值
2015/03/12 Javascript
jQuery基于ajax方式实现用户名存在性检查功能示例
2017/02/10 Javascript
JS实现页面内跳转的简单代码
2017/09/03 Javascript
微信小程序云开发如何使用云函数生成二维码
2019/05/18 Javascript
JavaScript 作用域scope简单汇总
2019/10/23 Javascript
详解关闭令人抓狂的ESlint 语法检测配置方法
2019/10/28 Javascript
详解Golang 与python中的字符串反转
2017/07/21 Python
django 发送手机验证码的示例代码
2018/04/25 Python
浅谈pandas筛选出表中满足另一个表所有条件的数据方法
2019/02/08 Python
Python中的 is 和 == 以及字符串驻留机制详解
2019/06/28 Python
利用python绘制数据曲线图的实现
2020/04/09 Python
飞利浦比利时官方网站:Philips比利时
2016/08/24 全球购物
英国拳击装备购物网站:RDX Sports
2018/01/23 全球购物
奥林匹亚体育:Olympia Sports
2020/12/30 全球购物
Collection和Collections的区别
2016/05/02 面试题
怎样从/向数据文件读/写结构
2014/11/23 面试题
电厂厂长岗位职责
2014/01/02 职场文书
旅游个人求职信范文
2014/01/30 职场文书
反对四风问题自我剖析材料
2014/09/29 职场文书
会计工作总结范文2014
2014/12/23 职场文书
工伤劳动仲裁代理词
2015/05/25 职场文书
法院执行局工作总结
2015/08/11 职场文书
《开国大典》教学反思
2016/02/16 职场文书
浅谈MySQL user权限表
2021/06/18 MySQL
Spring Security中用JWT退出登录时遇到的坑
2021/10/16 Java/Android
Java十分钟精通进阶适配器模式
2022/04/06 Java/Android