在线客服
扫描二维码
下载博学谷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方法是强大的,是需要重点掌握的。
以上就是正则表达式的四种操作,都是干货,大家收藏起来吧!
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
想做设计师?怎样系统学习Photoshop?
在互联网高速发展的过程中,UI设计师成为炙手可热的,甚至非专业出身的小伙伴纷纷加入到设计师的行列中。对于零基础的同学们而言,首要攻克的难关就是PS的使用。工欲善其事必先利其器,掌握好工具的使用才能更好的发挥设计的灵感。那我们应该怎样系统学习Photoshop呢?下面小编与大家一起学习一下Photoshop的学习内容。
9360
2019-08-07 18:11:27
Java在线培训课程内容是什么?需要学习那些知识点?
Java在线培训课程内容是什么?需要学习那些知识点?Java课程内容主要包括Java基础、Javaweb、主流框架、流行框架、以及各种实战项目等等。逐步深入学习,最终贴合目前企业用人需求,掌握各种实用的框架以及项目开发技术。
7889
2019-08-08 11:56:31
Python在线视频课程学习效果如何?
Python在线视频课程学习效果如何?因为人工智能、数据分析、爬虫以及自动化运维/测试,让Python成为风口浪尖的一门技术语言。大量新老程序员纷纷加入到Python技术的学习浪潮中。而作为零基础没有时间参加线下培训,或者已经在职无法参加线下培训的同学,学习Python在线视频课程成为大家首要选择,那Python在线视频课程的学习效果如何呢?
6378
2019-08-08 11:56:49
正则表达式语法规则有哪些?
什么是正则表达式呢?正则表达式是从左到右与主题字符串匹配的模式。那它有哪些语法规则呢?主要包括行定位符、单词定界符、字符类、选择字符、连字符、排除字符、限定符、点号字符、转义字符、反斜线、括号字符、反向引用、模式修饰符十三个方面。
7350
2019-08-09 18:43:27
正则表达式零基础快速入门
在入门学习正则表达式之前,也许大家对这个名词相当陌生,但是在生活中肯定有意或无意间接触过正则表达式。比如,你正在注册一个邮箱,平台会对邮箱地址和密码提一定的填写要求,如果不合要求就会给出提示,无法注册成功。这就是注册系统运用了正则表达式对大家填写的内容,进行了一个匹配判断。本文为了帮助零基础学习者可以快速入门正则表达式,总结了正则表达式的定义、起源以及应用场景,一起来看看吧!
3958
2020-08-17 12:23:03
热门文章
- 前端是什么
- 前端开发的工作职责
- 前端开发需要会什么?先掌握这三大核心关键技术
- 前端开发的工作方向有哪些?
- 简历加分-4步写出HR想要的简历
- 程序员如何突击面试?两大招带你拿下面试官
- 程序员面试技巧
- 架构师的厉害之处竟然是这……
- 架构师书籍推荐
- 懂了这些,才能成为架构师 查看更多
扫描二维码,了解更多信息