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 相关文章推荐
多个iframe自动调整大小的问题
Sep 18 Javascript
fckeditor 获取文本框值的实现代码
Feb 09 Javascript
jQuery 行背景颜色的交替显示(隔行变色)实现代码
Dec 13 Javascript
JavaScript 类似flash效果的立体图片浏览器
Feb 08 Javascript
javascript 保存文件到本地实现方法
Nov 29 Javascript
使用JavaScript和CSS实现文本隔行换色的方法
Nov 04 Javascript
基于javascript简单实现对身份证校验
Jan 25 Javascript
完美实现八种js焦点轮播图(上篇)
Jul 18 Javascript
拖动时防止选中
Feb 03 Javascript
DVA框架统一处理所有页面的loading状态
Aug 25 Javascript
微信小程序左滑动显示菜单功能的实现
Jun 14 Javascript
vue项目环境变量配置的实现方法
Oct 12 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+mysql事务rollback&commit示例
2010/02/08 PHP
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
2014/07/01 PHP
PHP中foreach()用法汇总
2015/07/02 PHP
基于PHP实现假装商品限时抢购繁忙的效果
2015/10/16 PHP
PHP PDOStatement::fetch讲解
2019/01/31 PHP
判断JavaScript对象是否可用的最正确方法分析
2008/10/03 Javascript
javascript 从if else 到 switch case 再到抽象
2010/07/17 Javascript
jQuery实现可收缩展开的级联菜单实例代码
2013/11/27 Javascript
js清空form表单中的内容示例
2014/05/20 Javascript
使用GruntJS构建Web程序之安装篇
2014/06/04 Javascript
JS实现消息来时让网页标题闪动效果的方法
2016/04/20 Javascript
原生js实现仿window10系统日历效果的实例
2017/10/31 Javascript
从零开始用electron手撸一个截屏工具的示例代码
2018/10/10 Javascript
详解如何构建Promise队列实现异步函数顺序执行
2018/10/23 Javascript
解决IOS端微信H5页面软键盘弹起后页面下方留白的问题
2019/06/05 Javascript
小程序input数据双向绑定实现方法
2019/10/17 Javascript
vue自定义组件(通过Vue.use()来使用)即install的用法说明
2020/08/11 Javascript
在vscode 中设置 vue模板内容的方法
2020/09/02 Javascript
[05:09]DOTA2-DPC中国联赛2月22日Recap集锦
2021/03/11 DOTA
Python socket实现简单聊天室
2018/04/01 Python
解决python3 json数据包含中文的读写问题
2018/05/10 Python
用Python3创建httpServer的简单方法
2018/06/04 Python
python实现石头剪刀布小游戏
2021/01/20 Python
Python向excel中写入数据的方法
2019/05/05 Python
使用python进行波形及频谱绘制的方法
2019/06/17 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
2019/08/08 Python
pytorch 输出中间层特征的实例
2019/08/17 Python
Nice Kicks网上商店:ShopNiceKicks.com
2018/12/25 全球购物
学生喝酒检讨书
2014/02/06 职场文书
身边的榜样活动方案
2014/08/20 职场文书
大学生党员自我剖析材料
2014/10/06 职场文书
2016年第32个教师节致辞
2015/11/26 职场文书
《爬天都峰》教学反思
2016/02/23 职场文书
MySQL数据库必备之条件查询语句
2021/10/15 MySQL
电脑只能进入安全模式无法正常启动的解决办法
2022/04/08 数码科技
JS开发前端团队展示控制器来为成员引流
2022/08/14 Javascript