在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
正则表达式是匹配模式,不管如何使用正则表达式,万变不离其宗,都需要先“匹配”。有了匹配这一基本操作后,才有其他的操作:验证、切分、提取、替换。下面小编来深度解析,正则表达式的四种操作。
1、验证
验证是正则表达式最直接的应用,比如表单验证。在说验证之前,先要说清楚匹配是什么概念。所谓匹配,就是看目标字符串里是否有满足匹配的子串。因此,“匹配”的本质就是“查找”。有没有匹配,是不是匹配上,判断是否的操作,即称为“验证”。这里举一个例子,来看看如何使用相关API进行验证操作的。
比如,判断一个字符串中是否有数字。
·使用search
var regex = /\d/;var string = "abc123";console.log( !!~string.search(regex) );// => true复制代码
·使用test
var regex = /\d/;var string = "abc123";console.log( regex.test(string) );// => true复制代码
·使用match
var regex = /\d/;var string = "abc123";console.log( !!string.match(regex) );// => true复制代码
·使用exec
var regex = /\d/;var string = "abc123";console.log( !!regex.exec(string) );// => true复制代码
其中,最常用的是test。
2、切分
匹配上了,我们就可以进行一些操作,比如切分。
所谓“切分”,就是把目标字符串,切成一段一段的。在JS中使用的是split。
比如,目标字符串是"html,css,javascript",按逗号来切分:
var regex = /,/;var string = "html,css,javascript";console.log( string.split(regex) );// => ["html", "css", "javascript"]复制代码
又比如,如下的日期格式:
2017/06/26
2017.06.26
2017-06-26
可以使用split“切出”年月日:
var regex = /\D/;console.log( "2017/06/26".split(regex) );console.log( "2017.06.26".split(regex) );console.log( "2017-06-26".split(regex) );// =>
["2017", "06", "26"]// => ["2017", "06", "26"]// => ["2017", "06", "26"]复制代码
3、提取
虽然整体匹配上了,但有时需要提取部分匹配的数据。
此时正则通常要使用分组引用(分组捕获)功能,还需要配合使用相关API。
这里,还是以日期为例,提取出年月日。注意下面正则中的括号:
·match
var regex = /^(\d{4})\D(\d{2})\D(\d{2})$/;var string = "2017-06-26";console.log( string.match(regex) );// =>["2017-06-26", "2017", "06", "26", index: 0, input: "2017-06-26"]复制代码
·exec
var regex = /^(\d{4})\D(\d{2})\D(\d{2})$/;var string = "2017-06-26";console.log( regex.exec(string) );// =>["2017-06-26", "2017", "06", "26", index: 0, input: "2017-06-26"]复制代码
·test
var regex = /^(\d{4})\D(\d{2})\D(\d{2})$/;var string = "2017-06-26";
regex.test(string);console.log( RegExp.$1, RegExp.$2, RegExp.$3 );// => "2017" "06" "26"复制代码
·search
var regex = /^(\d{4})\D(\d{2})\D(\d{2})$/;var string = "2017-06-26";
string.search(regex);console.log( RegExp.$1, RegExp.$2, RegExp.$3 );// => "2017" "06" "26"复制代码
·replace
var regex = /^(\d{4})\D(\d{2})\D(\d{2})$/;var string = "2017-06-26";var date = [];
string.replace(regex, function(match, year, month, day) {
date.push(year, month, day);
});console.log(date);// => ["2017", "06", "26"]复制代码
其中,最常用的是match。
4、替换
找,往往不是目的,通常下一步是为了替换。在JS中,使用replace进行替换。
比如把日期格式,从yyyy-mm-dd替换成yyyy/mm/dd:
var string = "2017-06-26";var today = new Date( string.replace(/-/g, "/") );console.log( today );// => Mon Jun 26 2017 00:00:00 GMT+0800 (中国标准时间)复制代码
这里只是简单地应用了一下replace。但,replace方法是强大的,是需要重点掌握的。
以上就是正则表达式的四种操作,都是干货,大家收藏起来吧!
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
程序员个人简历怎么写?简历的结构怎么设置?
程序员个人简历怎么写?简历的结构怎么设置?标准的简历结构要包含基本信息、求职意向、教育背景、工作经历、专业技能,除此之外还要做自我介绍。
8955
2019-07-29 11:45:25
软件工程师前景如何?就业薪资是多少?
软件工程师前景如何?就业薪资是多少?通过有关数据显示,目前国内对软件工程师的需求已经远超20万,并且每年以20%左右的速度快速增长,而高校计算机毕业生中的能够直接打到企业用人标准的软件工程人才还比较缺乏,尤其是高素质的软件工程师的极度短缺。所以软件工程师市场相对比较活跃。
11042
2019-08-08 14:08:28
Java基础开发的集合类都有哪些?主要方法有什么?
你所知道的Java基础开发的集合类都有哪些?主要方法有什么?最常用的集合类是 List 和 Map。 List 的具体实现包括ArrayList 和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。 List 适用于按数值索引访问元素的情形。
7276
2019-06-03 11:16:40
正则表达式语法规则有哪些?
什么是正则表达式呢?正则表达式是从左到右与主题字符串匹配的模式。那它有哪些语法规则呢?主要包括行定位符、单词定界符、字符类、选择字符、连字符、排除字符、限定符、点号字符、转义字符、反斜线、括号字符、反向引用、模式修饰符十三个方面。
7663
2019-08-09 18:43:27
正则表达式零基础快速入门
在入门学习正则表达式之前,也许大家对这个名词相当陌生,但是在生活中肯定有意或无意间接触过正则表达式。比如,你正在注册一个邮箱,平台会对邮箱地址和密码提一定的填写要求,如果不合要求就会给出提示,无法注册成功。这就是注册系统运用了正则表达式对大家填写的内容,进行了一个匹配判断。本文为了帮助零基础学习者可以快速入门正则表达式,总结了正则表达式的定义、起源以及应用场景,一起来看看吧!
4482
2020-08-17 12:23:03