在线客服
扫描二维码
下载博学谷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方法是强大的,是需要重点掌握的。
以上就是正则表达式的四种操作,都是干货,大家收藏起来吧!
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
资深HR人事面试常见问题汇总下篇 共20道题
资深HR人事面试常见问题汇总下篇,共20道题。由于篇幅有限人事面试常见问题汇总分为上下两篇,此篇为资深HR人事面试常见问题汇总下篇,希望对您有帮助~
8833
2019-05-15 18:45:58
小程序开发好就业吗?
小程序开发好就业吗?根据网络数据显示在2018年期间,有182万人通过小程序开发找到了合适的工作岗位。目前包括微信小程序,支付宝小程序,手机商小程序等等各种小程序层出不穷,因为小程序的成本低、开发难度小成为目前企业的首选。也因此小程序开发工作岗位也日渐成熟。预计2019年会有更多的朋友通过小程序找到工作。
7357
2019-08-08 11:56:42
PMP®认证考试形式是怎样,PMP®认证考试难吗?
PMP®认证考试形式是怎样,PMP®认证考试难吗?备考PMP®认证考试的同学需要提前了解一下相关考试的情况,面对考试的时候才会得心应手,从容面对。
9289
2021-12-10 15:31:30
正则表达式语法规则有哪些?
什么是正则表达式呢?正则表达式是从左到右与主题字符串匹配的模式。那它有哪些语法规则呢?主要包括行定位符、单词定界符、字符类、选择字符、连字符、排除字符、限定符、点号字符、转义字符、反斜线、括号字符、反向引用、模式修饰符十三个方面。
7169
2019-08-09 18:43:27
正则表达式零基础快速入门
在入门学习正则表达式之前,也许大家对这个名词相当陌生,但是在生活中肯定有意或无意间接触过正则表达式。比如,你正在注册一个邮箱,平台会对邮箱地址和密码提一定的填写要求,如果不合要求就会给出提示,无法注册成功。这就是注册系统运用了正则表达式对大家填写的内容,进行了一个匹配判断。本文为了帮助零基础学习者可以快速入门正则表达式,总结了正则表达式的定义、起源以及应用场景,一起来看看吧!
3678
2020-08-17 12:23:03