JavaScript零基础入门——(七)当字符串遇上正则表达式

欢迎大家回到我们的JavaScript零基础入门,上一节课,我们学习了几种常用的字符串处理的方法,但上节课我们也说了,原生的字符串处理方法要有正则表达式的加持,才能发挥更大的威力。那么这节课,我们来学习一下正则表达式。

还是那个好习惯,什么是正则表达式?正则表达式,其实是舶来语,英文叫Regular Expression,简写为RegExp。其实从英文上可以看出来,直译叫规则表达式(台湾地区就是这么叫的),它是一种规则,用来规范或限制字符串的格式或内容,它是一种强大的字符串匹配工具,不过,也是一种正常人很难读懂的文字。

在JS中,正则表达式有两种写法,一种是JS风格,一种是Perl风格,前者通过创建RegExp对象来实现,后者则是直接通过Perl语法来简写,我们来看一下代码:

既然是表达式,那就有他特定的表达方法,一般来说,最常用的是[],方括号里边可以写取值范围,当字符串满足方括号中其中一个条件即可,同时,我们也可以借助正则对象的test方法来验证,不过需要注意的是,test只要有部分符合要求,就会返回true。我们来看一下代码:

其实我们经常有一种需求,那就是排除部分不满足条件的,有点像我们曾经说过的取反,那要怎么实现呢?你能想得到,正则表达式的开发者也能想得到,在方括号中,加入^就可能取得条件的补集了,我们来看一下代码:

有人会问,最后一个为什么是true而不是false呢?其实原因很简单,因为我们写的是a-z,但字符串中包含了大写字母N,所以是true。那么问题来了,我要忽略大小写怎么办?当然你可以在写一个A-Z,有同学嫌麻烦,没事,还记得上边我们说过,正则表达式是有option的吗?我们好像还没有用过呢,别急,我们来讲一讲。

option,主要是用来作为辅助条件,简单来说,助攻一把。常用的option呢,其实只有两个,一个是i,一个是g。i,就是ignore的缩写,表示忽略大小写;g是global的缩写,表示全局匹配。全局匹配我们下面再说,我们来先来了解一下ignore,看代码:

这时候又有同学会说了,老师,每次老写这么长的表达式,好麻烦。不慌,正则表达式支持简写。正则表达式的简写,主要是借助转义字符,我们来认识一下:

说了这么多,有同学说,老师,看不出对字符串处理发挥什么作用?好吧,那我们就来说一说。

首先,我们上节课说过,search可以返回指定字符出现的位置,但是我们想要的可能是判断有无包含字母或数字之类的,但字母又区分大小写,该怎么办?来看代码:

上一节课我们还讲过replace可以替换找到第一次的文本,但是如果我想批量替换怎么办?继续看代码:

好,这节课我们的主要内容已经讲完了,更多好玩的例子请观看下面的视频。不过,看归看,还是要自己敲一敲的哈。好了,下一节课,我们接着讲JavaScript的数组。

识别下方二维码,关注【振丹敲代码】,陪着振丹入门前端开发

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180616G1EOOS00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券