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 拖动表格行实现代码
May 05 Javascript
ASP.NET jQuery 实例17 通过使用jQuery validation插件校验ListBox
Feb 03 Javascript
jQuery中的val()示例应用
Feb 26 Javascript
jQuery插件之Tocify动态节点目录菜单生成器附源码下载
Jan 08 Javascript
JS设置手机验证码60s等待实现代码
Jun 14 Javascript
React入门教程之Hello World以及环境搭建详解
Jul 11 Javascript
webpack配置sass模块的加载的方法
Jul 30 Javascript
详解jquery插件jquery.viewport.js学习使用方法
Sep 08 jQuery
利用vue开发一个所谓的数独方法实例
Dec 21 Javascript
element 结合vue 在表单验证时有值却提示错误的解决办法
Jan 22 Javascript
vue2.0之多页面的开发的示例
Jan 30 Javascript
如何在 ant 的table中实现图片的渲染操作
Oct 28 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
实现了一个PHP5的getter/setter基类的代码
2007/02/25 PHP
PHP 多维数组排序实现代码
2009/08/05 PHP
Zend Framework中的简单工厂模式 图文
2012/07/10 PHP
php并发对MYSQL造成压力的解决方法
2013/02/21 PHP
解析zend studio中直接导入svn中的项目的方法步骤
2013/06/21 PHP
php中mt_rand()随机数函数用法
2014/11/24 PHP
thinkphp的静态缓存用法分析
2014/11/29 PHP
php使用get_class_methods()函数获取分类的方法
2016/07/20 PHP
Iframe 自动适应页面的高度示例代码
2014/02/26 Javascript
node.js中的buffer.length方法使用说明
2014/12/14 Javascript
jQuery往返城市和日期查询实例讲解
2015/10/09 Javascript
一不小心就做错的JS闭包面试题
2015/11/25 Javascript
Vuex2.0+Vue2.0构建备忘录应用实践
2016/11/30 Javascript
JavaScript运动框架 解决速度正负取整问题(一)
2017/05/17 Javascript
微信小程序使用progress组件实现显示进度功能【附源码下载】
2017/12/12 Javascript
JS弹窗 JS弹出DIV并使整个页面背景变暗功能的实现代码
2018/04/21 Javascript
在vue中使用echarts图表实例代码详解
2018/10/22 Javascript
vue组件化中slot的基本使用方法
2019/05/01 Javascript
jQuery动态生成的元素绑定事件操作实例分析
2019/05/04 jQuery
记录vue项目中遇到的一点小问题
2019/05/14 Javascript
Vue文本模糊匹配功能如何实现
2020/07/30 Javascript
js实现跳一跳小游戏
2020/07/31 Javascript
Python实现查找匹配项作处理后再替换回去的方法
2017/06/10 Python
Python2.7 实现引入自己写的类方法
2018/04/29 Python
安装Pycharm2019以及配置anconda教程的方法步骤
2019/11/11 Python
python GUI库图形界面开发之PyQt5不规则窗口实现与显示GIF动画的详细方法与实例
2020/03/09 Python
女性时尚网购:Chic Me
2019/07/30 全球购物
无工作经验者个人求职信范文
2013/12/22 职场文书
卖车协议书
2014/04/21 职场文书
大学竞选班长演讲稿
2014/04/24 职场文书
优秀员工评优方案
2014/06/13 职场文书
法学院毕业生求职信
2014/06/25 职场文书
质检员岗位职责
2015/02/03 职场文书
2015年乡镇食品安全工作总结
2015/10/22 职场文书
公证书
2019/04/17 职场文书
pytorch 预训练模型读取修改相关参数的填坑问题
2021/06/05 Python