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 相关文章推荐
封装好的省市地区联动控件附下载
Aug 13 Javascript
js文字滚动停顿效果代码
Jun 28 Javascript
javascript中关于执行环境的杂谈
Aug 14 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
Nov 19 Javascript
javascript计算星座属相(十二生肖属相)示例代码
Jan 09 Javascript
jQuery中on()方法用法实例
Jan 19 Javascript
Javascript中For In语句用法实例
May 14 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
Aug 24 Javascript
js手动播放图片实现图片轮播效果
Sep 17 Javascript
vue 本地环境跨域请求proxyTable的方法
Sep 19 Javascript
vue中前进刷新、后退缓存用户浏览数据和浏览位置的实例讲解
Sep 21 Javascript
微信小程序点餐系统开发常见问题汇总
Aug 06 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
关于BIG5-HKSCS的解决方法
2007/03/20 PHP
深入理解require与require_once与include以及include_once的区别
2013/06/05 PHP
php实现粘贴截图并完成上传功能
2015/05/17 PHP
Zend Framework教程之资源(Resources)用法实例详解
2016/03/14 PHP
效率高的Javscript字符串替换函数的benchmark
2008/08/02 Javascript
javascript学习笔记(六) Date 日期类型
2012/06/19 Javascript
深入理解JavaScript中的传值与传引用
2013/12/09 Javascript
js 触发select onchange事件代码
2014/03/20 Javascript
使用VS开发 Node.js指南
2015/01/06 Javascript
ECMAScript6函数默认参数
2015/06/12 Javascript
全面解析Bootstrap表单使用方法(表单控件状态)
2015/11/24 Javascript
JS操作JSON方法总结(推荐)
2016/06/14 Javascript
js仿QQ邮箱收件人选择与搜索功能
2017/02/10 Javascript
微信小程序-获得用户输入内容
2017/02/13 Javascript
详解从Node.js的child_process模块来学习父子进程之间的通信
2017/03/27 Javascript
JavaScript中常用的简洁高级技巧总结
2019/03/10 Javascript
微信小程序自定义toast组件的方法详解【含动画】
2019/05/11 Javascript
基于vue手写tree插件的那点事儿
2019/08/20 Javascript
layui button 按钮弹出提示窗口,确定才进行的方法
2019/09/06 Javascript
超简单的微信小程序轮播图
2019/11/22 Javascript
python异步任务队列示例
2014/04/01 Python
Python使用htpasswd实现基本认证授权的例子
2014/06/10 Python
基于进程内通讯的python聊天室实现方法
2015/06/28 Python
玩转python爬虫之cookie使用方法
2016/02/17 Python
Python第三方库的安装方法总结
2016/06/06 Python
python爬虫中get和post方法介绍以及cookie作用
2018/02/08 Python
对Python的交互模式和直接运行.py文件的区别详解
2019/06/29 Python
python数据库操作mysql:pymysql、sqlalchemy常见用法详解
2020/03/30 Python
Django如何在不停机的情况下创建索引
2020/08/02 Python
韩国三星集团旗下时尚品牌官网:SSF SHOP
2016/08/02 全球购物
新学期开学寄语
2014/01/18 职场文书
2014镇党委书记党建工作汇报材料
2014/11/02 职场文书
2014年学生管理工作总结
2014/12/20 职场文书
辩护词格式
2015/05/22 职场文书
解决Golang中goroutine执行速度的问题
2021/05/02 Golang
Windows Server 修改远程桌面端口的实现
2022/06/25 Servers