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 相关文章推荐
比较简单的一个符合web标准的JS调用flash方法
Nov 29 Javascript
Jquery实现视频播放页面的关灯开灯效果
May 27 Javascript
JS检测图片大小的实例
Aug 21 Javascript
模拟一个类似百度google的模糊搜索下拉列表
Apr 15 Javascript
用js通过url传参把数据从一个页面传到另一个页面
Sep 01 Javascript
jQuery实现转动随机数抽奖效果的方法
May 21 Javascript
jQuery实现径向动画菜单效果
Jul 17 Javascript
js+flash实现的5图变换效果广告代码(附演示与demo源码下载)
Apr 01 Javascript
js实现拖拽功能
Mar 01 Javascript
vue+axios+promise实际开发用法详解
Oct 15 Javascript
浅谈微信小程序列表埋点曝光指南
Oct 15 Javascript
Vue-CLI与Vuex使用方法实例分析
Jan 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
无线电波是什么?它是怎样传输的?
2021/03/01 无线电
PHP生成静态页
2006/11/25 PHP
ThinkPHP实现二级循环读取的方法
2014/11/03 PHP
PHP运行模式汇总
2016/11/06 PHP
php封装的验证码类分享
2017/02/26 PHP
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
PHP基于phpqrcode类生成二维码的方法示例详解
2020/08/07 PHP
[原创]网络复制内容时常用的正则+editplus
2006/11/30 Javascript
C++中的string类的用法小结
2015/08/07 Javascript
js 动态添加元素(div、li、img等)及设置属性的方法
2016/07/19 Javascript
vue.js指令v-model实现方法
2016/12/05 Javascript
AngularJS中下拉框的基本用法示例
2017/10/11 Javascript
vue2中的keep-alive使用总结及注意事项
2017/12/21 Javascript
详解Vue一个案例引发「内容分发slot」的最全总结
2018/12/02 Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
2019/10/23 Javascript
Python利用Beautiful Soup模块创建对象详解
2017/03/27 Python
TF-IDF算法解析与Python实现方法详解
2017/11/16 Python
python正则表达式爬取猫眼电影top100
2018/02/24 Python
python进行文件对比的方法
2018/12/24 Python
Python虚拟环境的原理及使用详解
2019/07/02 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
Python实现word2Vec model过程解析
2019/12/16 Python
导入tensorflow:ImportError: libcublas.so.9.0 报错
2020/01/06 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
2020/05/27 Python
使用PyWeChatSpy自动回复微信拍一拍功能的实现代码
2020/07/02 Python
Python 解析简单的XML数据
2020/07/24 Python
澳大利亚领先的睡衣品牌:Peter Alexander
2016/08/16 全球购物
Bravofly德国:预订廉价航班和酒店
2019/09/22 全球购物
奢华时尚的创新平台:Baltini
2020/10/03 全球购物
Loreto Gallo英国:欧洲领先的在线药房
2021/01/21 全球购物
EJB的几种类型
2012/08/15 面试题
2014县委书记四风对照检查材料思想汇报
2014/09/21 职场文书
工作作风整顿个人剖析材料
2014/10/11 职场文书
实习生辞职信范文
2015/03/02 职场文书
Springboot如何使用logback实现多环境配置?
2021/06/16 Java/Android
Win11 vmware不兼容怎么办?Win11与VMware虚拟机不兼容的解决方法
2023/01/09 数码科技