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 16 Javascript
一组JS创建和操作表格的函数集合
May 07 Javascript
js loading加载效果实现代码
Nov 24 Javascript
在百度知道团队中快速审批新成员的js脚本
Feb 02 Javascript
原生js实现类似弹窗抖动效果
Apr 02 Javascript
基于OL2实现百度地图ABCD marker的效果
Oct 01 Javascript
基于JS实现移动端向左滑动出现删除按钮功能
Feb 22 Javascript
Node.js中 __dirname 的使用介绍
Jun 19 Javascript
详解angularjs popup-table 弹出框表格指令
Sep 20 Javascript
Vue实现左右菜单联动实现代码
Aug 12 Javascript
vue 2.8.2版本配置刚进入时候的默认页面方法
Sep 21 Javascript
vue-cli3环境变量与分环境打包的方法示例
Feb 18 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
星际玩家的三大定律
2020/03/04 星际争霸
PHP字符串处理的10个简单方法
2010/06/30 PHP
thinkphp实现163、QQ邮箱收发邮件的方法
2015/12/18 PHP
php 实现一个字符串加密解密的函数实例代码
2016/11/01 PHP
PHP生成短网址的思路以及实现方法的详解
2019/03/25 PHP
过虑特殊字符输入的js代码
2010/08/05 Javascript
JavaScript类和继承 this属性使用说明
2010/09/03 Javascript
jQuery EasyUI API 中文文档 - TimeSpinner时间微调器
2011/10/23 Javascript
vue.js表格组件开发的实例详解
2016/10/12 Javascript
微信 java 实现js-sdk 图片上传下载完整流程
2016/10/21 Javascript
PHP实现记录代码运行时间封装类实例教程
2017/05/08 Javascript
js实现可以点击收缩或张开的悬浮窗
2017/09/18 Javascript
javascript修改浏览器title方法 JS动态修改浏览器标题
2017/11/30 Javascript
微信小程序scroll-view组件实现滚动动画
2018/01/31 Javascript
Vue结合Video.js播放m3u8视频流的方法示例
2018/05/04 Javascript
js实现的订阅发布者模式简单示例
2020/03/14 Javascript
浅谈JS for循环中使用break和continue的区别
2020/07/21 Javascript
[41:54]2018DOTA2亚洲邀请赛 4.1 小组赛A组加赛 TNC vs Liquid
2018/04/03 DOTA
python修改注册表终止360进程实例
2014/10/13 Python
Python中常用操作字符串的函数与方法总结
2016/02/04 Python
python实现Windows电脑定时关机
2018/06/20 Python
Python+OpenCV目标跟踪实现基本的运动检测
2018/07/10 Python
Python实用技巧之列表、字典、集合中根据条件筛选数据详解
2018/07/11 Python
python通过zabbix api获取主机
2018/09/17 Python
Python之数据序列化(json、pickle、shelve)详解
2019/08/30 Python
python实现npy格式文件转换为txt文件操作
2020/07/01 Python
Pycharm新手使用教程(图文详解)
2020/09/17 Python
好药师网上药店:安全合法的网上药品零售药房
2017/02/15 全球购物
大学四年的个人自我评价
2014/01/14 职场文书
护理专业优质毕业生自荐书
2014/01/31 职场文书
财会专业大学生求职信
2014/09/26 职场文书
武夷山导游词
2015/02/03 职场文书
高中政治教师教学反思
2016/02/23 职场文书
Python中基础数据类型 set集合知识点总结
2021/08/02 Python
MySQL8.0升级的踩坑历险记
2021/11/01 MySQL
python turtle绘图
2022/05/04 Python