在线客服
扫描二维码
下载博学谷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方法是强大的,是需要重点掌握的。
以上就是正则表达式的四种操作,都是干货,大家收藏起来吧!
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
零基础软件测试学什么?学软件开发难吗
软件测试所在的IT行业门槛低简单易学且薪资高,小白初入IT行业的不二选择。零基础软件测试学什么?软件测试学习课程分为三个阶段,软件测试基础、编程开发技术、自动化测试工具。软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。
7923
2019-05-30 10:02:15
Java开发语言与C语言C++的区别是什么?
从各大机构的编程语言排行榜我们可以了解。目前世界范围内Java开发语言与C语言C++基本长期占领开发语言榜单的前三位。那这三门语言之间有什么区别呢?
11652
2019-08-08 14:18:09
为什么要参加PMP®认证考试?PMP®考试认证的价值是什么?
据不完全统计,目前国内持有PMP®认证证书人数达到25万余人,参加PMP®认证考试的通过率高达90%左右。那为什么要参加PMP®认证考试呢?PMP®认证考试有什么价值?
6761
2021-12-30 16:16:33
正则表达式语法规则有哪些?
什么是正则表达式呢?正则表达式是从左到右与主题字符串匹配的模式。那它有哪些语法规则呢?主要包括行定位符、单词定界符、字符类、选择字符、连字符、排除字符、限定符、点号字符、转义字符、反斜线、括号字符、反向引用、模式修饰符十三个方面。
7574
2019-08-09 18:43:27
正则表达式零基础快速入门
在入门学习正则表达式之前,也许大家对这个名词相当陌生,但是在生活中肯定有意或无意间接触过正则表达式。比如,你正在注册一个邮箱,平台会对邮箱地址和密码提一定的填写要求,如果不合要求就会给出提示,无法注册成功。这就是注册系统运用了正则表达式对大家填写的内容,进行了一个匹配判断。本文为了帮助零基础学习者可以快速入门正则表达式,总结了正则表达式的定义、起源以及应用场景,一起来看看吧!
4325
2020-08-17 12:23:03