JavaScript中正则表达式判断匹配规则及常用方法


Posted in Javascript onAugust 03, 2017

字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在。 正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了。 

\d可以匹配一个数字                 '00\d'可以匹配'007' ,'\d\d\d'可以匹配'010'
\w可以匹配一个字母或数字      '\w\w'可以匹配'js'
\s可以匹配一个空格(也包括Tab等空白符)
\DWS都是表示匹配与小写字母相反的匹配关系
\数字n表示指向第n个分组捕获到的字符串文本的一个引用,能够再次被匹配       /(\d+)(0*)\1/可以匹配‘22300223'
.可以匹配任意字符                  'js.'可以匹配'jsp'、'jss'、'js!' 

正则表达式量词:

*表示任意个字符(包括0个)
+表示至少一个字符
?表示0个或1个字符
{n}表示n个字符
{n,m}表示n-m个字符 

A|B可以匹配A或B       (J|j)ava(S|s)cript可以匹配'JavaScript'、'Javascript'、'javaScript'或者'javascript'

^表示行的开头          ^\d表示必须以数字开头

$表示行的结束          \d$表示必须以数字结束

[]表示范围,字符类                          

[a-zA-Z\_\$][0-9a-zA-Z\_\$]*可以匹配由字母或下划线、$开头,后接任意个由一个数字、字母或者下划线、$组成的字符串,也就是JavaScript允许的变量名

[a-zA-Z\_\$][0-9a-zA-Z\_\$]{0, 19}更精确地限制了变量的长度是1-20个字符(前面1个字符+后面最多19个字符)

[] 中的^ 表示排除某个字符 

[^#?] 表示除了?和#的所有字符     

()表示捕获型分组,可以将匹配的字符串进行分组,提取子串。

如果正则表达式中定义了组,就可以在RegExp对象上用exec()方法提取出子串来。

exec()匹配成功后,返回一个Array,第一个元素是正则表达式匹配到的整个字符串,后面的字符串表示匹配成功的子串。

exec()匹配失败时返回null。

^(\d{3})-(\d{3,8})$分别定义了两个组,可以直接从匹配的字符串中提取出区号和本地号码:

var re = /^(\d{3})-(\d{3,8})$/;
re.exec('010-12345'); // ['010-12345', '010', '12345']
re.exec('010 12345'); // null 

(?:) 分组不想被捕获的时候使用,可以提高程序执行速度,非捕获型分组不会干扰捕获型分组编号。

用正则表达式切分字符串比用固定的字符更灵活

'a,b;; c d'.split(/[\s\,\;]+/); // ['a', 'b', 'c', 'd']

RegExp对象的test()方法用于测试给定的字符串是否符合条件。

var re = /^\d{3}\-\d{3,8}$/;
re.test('010-12345'); // true
re.test('010-1234x'); // false

需要特别指出的是,正则匹配默认是贪婪匹配,也就是匹配尽可能多的字符。

var re = /^(\d+)(0*)$/;
re.exec('102300'); // ['102300', '102300', '']

由于\d+采用贪婪匹配,直接把后面的0全部匹配了,结果0*只能匹配空字符串了。

加个?就可以让\d+采用非贪婪匹配:

var re = /^(\d+?)(0*)$/;
re.exec('102300'); // ['102300', '1023', '00']

特殊标志

g标志 ,表示全局匹配

i标志,表示忽略大小写

m标志,表示执行多行匹配 

需要使用转义符' \ '的15个特殊字符

/ \ [ ] ( ) { } ? + * | . ^ $

总结

以上所述是小编给大家介绍的JavaScript中正则表达式判断匹配规则及常用方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript Excel操作知识点
Apr 24 Javascript
重载toString实现JS HashMap分析
Mar 13 Javascript
js 金额文本框实现代码
Feb 14 Javascript
JavaScript高级程序设计 阅读笔记(十七) js事件
Aug 14 Javascript
js网页实时倒计时精确到秒级
Feb 10 Javascript
JS去掉第一个字符和最后一个字符的实现代码
Feb 20 Javascript
jquery选择符快速提取web表单数据示例
Mar 27 Javascript
javascript中checkbox使用方法简单实例演示
Nov 17 Javascript
简单实现JS对dom操作封装
Dec 02 Javascript
jQuery+canvas实现简单的球体斜抛及颜色动态变换效果
Jan 28 Javascript
Bootstrap jquery.twbsPagination.js动态页码分页实例代码
Feb 20 Javascript
js+canvas绘制图形验证码
Sep 21 Javascript
vue 2.0封装model组件的方法
Aug 03 #Javascript
jQuery实现上传图片前预览效果功能
Aug 03 #jQuery
详解基于vue的移动web app页面缓存解决方案
Aug 03 #Javascript
Bootstrap与Angularjs的模态框实例代码
Aug 03 #Javascript
基于 Bootstrap Datetimepicker 联动
Aug 03 #Javascript
详解react-webpack2-热模块替换[HMR]
Aug 03 #Javascript
webpack开发跨域问题解决办法
Aug 03 #Javascript
You might like
php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证
2016/05/04 PHP
Smarty实现页面静态化(生成HTML)的方法
2016/05/23 PHP
PHP获取指定日期是星期几的实现方法
2016/11/30 PHP
php生成微信红包数组的方法
2019/09/05 PHP
JS限制上传图片大小不使用控件在本地实现
2012/12/19 Javascript
js鼠标及对象坐标控制属性详细解析
2013/12/14 Javascript
Ubuntu中搭建Nodejs开发环境过程分享
2014/06/01 NodeJs
js判断手机号运营商的方法
2015/10/23 Javascript
AngularJS初始化静态模板详解
2016/01/14 Javascript
jQuery表单事件实例代码分享
2016/08/18 Javascript
JavaScript中附件预览功能实现详解(推荐)
2017/08/15 Javascript
vue完成项目后,打包成静态文件的方法
2018/09/03 Javascript
vue组件添加事件@click.native操作
2020/10/30 Javascript
Python简单读取json文件功能示例
2017/11/30 Python
python 中if else 语句的作用及示例代码
2018/03/05 Python
Django使用AJAX调用自己写的API接口的方法
2019/03/06 Python
python3实现斐波那契数列(4种方法)
2019/07/15 Python
python利用7z批量解压rar的实现
2019/08/07 Python
python实现对图片进行旋转,放缩,裁剪的功能
2019/08/07 Python
简单了解Python3 bytes和str类型的区别和联系
2019/12/19 Python
python通过移动端访问查看电脑界面
2020/01/06 Python
利用CSS3的checked伪类实现OL的隐藏显示的方法
2010/12/18 HTML / CSS
html5 web本地存储将取代我们的cookie
2012/12/26 HTML / CSS
HTML5中在title标题标签里设置小图标的方法
2020/06/23 HTML / CSS
室内设计自我鉴定
2013/10/15 职场文书
面包店的创业计划书范文
2014/01/16 职场文书
六查六看剖析材料
2014/02/15 职场文书
安全生产活动月方案
2014/03/09 职场文书
2014年国庆节演讲稿精选范文1500字
2014/09/25 职场文书
2014年健康教育工作总结
2014/11/20 职场文书
安全责任书
2015/01/29 职场文书
2015年党员发展工作总结
2015/05/13 职场文书
毕业实习感受与体会
2015/05/26 职场文书
2016年感恩节寄语
2015/12/07 职场文书
js Proxy的原理详解
2021/05/25 Javascript
MySQL数据库之存储过程 procedure
2022/06/16 MySQL