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

\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中正则表达式判断匹配规则及常用方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# js正则表达式匹配规则
# 正则表达式语法规则及在Javascript和C#中的使用方法
# 正则表达式
# 最多
# 下划线
# 小编
# 就可以
# 的是
# 都是
# 是一种
# 切分
# 第一个
# 在此
# 数据结构
# 给大家
# 可以直接
# 涉及到
# 强有力
# 所述
# 给我留言
# 无处不在
# 来给
相关文章:
零基础网站服务器架设实战:轻量应用与域名解析配置指南
建站之星伪静态规则如何设置?
建站之星安装模板失败:服务器环境不兼容?
网页设计网站制作软件,microsoft office哪个可以创建网页?
建站主机服务器选购指南:轻量应用与VPS配置解析
成都网站制作公司哪家好,四川省职工服务网是做什么用?
建站为何优先选择香港服务器?
jQuery 常见小例汇总
定制建站平台哪家好?企业官网搭建与快速建站方案推荐
详解jQuery停止动画——stop()方法的使用
微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?
建站之星后台管理系统如何操作?
建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析
如何快速生成专业多端适配建站电话?
营销式网站制作方案,销售哪个网站招聘效果最好?
如何用AWS免费套餐快速搭建高效网站?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
如何获取上海专业网站定制建站电话?
企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
教学论文网站制作软件有哪些,写论文用什么软件
?
建站之星官网登录失败?如何快速解决?
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
西安大型网站制作公司,西安招聘网站最好的是哪个?
如何在IIS服务器上快速部署高效网站?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
网站制作难吗安全吗,做一个网站需要多久时间?
,如何利用word制作宣传手册?
洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
如何在Golang中使用replace替换模块_指定本地或远程路径
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
Android使用GridView实现日历的简单功能
专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?
重庆网站制作公司哪家好,重庆中考招生办官方网站?
北京建设网站制作公司,北京古代建筑博物馆预约官网?
如何用搬瓦工VPS快速搭建个人网站?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
建站之星如何一键生成手机站?
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
三星网站视频制作教程下载,三星w23网页如何全屏?
如何在景安云服务器上绑定域名并配置虚拟主机?
如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法
广平建站公司哪家专业可靠?如何选择?
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
如何在宝塔面板中修改默认建站目录?
如何挑选高效建站主机与优质域名?
*请认真填写需求信息,我们会在24小时内与您取得联系。