再也不用怕正则表达式了

有些知识,我们只需要付出一点点时间,把它掌握了,会大大提高我们的效率,节省我们的时间。正则表达式就是这样的知识,但是,作为入行好几年的我来说,正则表达式一直是一头雾水,今天决定把它好好研究研究。

什么是正则表达式

正则表达式是一组由字母和符号组成的特殊文本, 它可以用来从文本中找出满足你想要的格式的句子.

1.基本匹配

上面是最基本的操作,exec是js中的用法。会在一行文本中找到满足正则表达式的文字。 下面来介绍两个符号 ^ 和 ***$***

^ 表示文本以^后面的文字开头, 表 示 文 本 以 表示文本以 表示文本以结尾 举个栗子

两个在一起一块用意思就是以hello开头,以hello结尾(或者说以h开头,以o结尾,中间匹配ello)

var a = /^hello$/
a.exec(sayhello to hello kikty)//null
a.exec(hello to hello kikty)//null
a.exec(hello)//hello

我们现在已经能比较轻松的命中行首和行尾了,那么我们能不能命中词首和词尾呢? 答案是

var a = /hello/
a.exec(girls say hellohi to me) // hello
var b = /hello/
b.exec(girls say hi&hello to me)//hello

var c = /hello/
c.exec(girls say hellohi to me)//null
c.exec(girls say hihello to me)//null
c.exec(girls say hello to me)//hello

连续次数的匹配

1.{num}

{num}表示连续出现num次,比如’a{2}表示a连续出现2次,不过需要注意的是,如果字符连续出现的次数大于指定的次数,也是可以被匹配到的

var a = /a{3}/
a.test(hhaaaaa)//true

2. {n, m}

{n, m}表示之前的字符至少出现n次,最多出现m次,都能被匹配到,也就是说,只要 n <= 字符出现的次数在 <= m,就能被匹配到。

var a = /(ha){3,6}/
a.exec(wahahahahahahhahahhhu)//hahahahaha

3.{x,}

表示之前的字符至少出现x次,或者连续出现次数大于x次,即可被匹配到。

var a = /(qing){3,}/
a.exec(hiqingqingqiqnqingqing)//null
a.exec(hiqingqingqingqingha)//qingqingqing

4. *

*表示匹配任意长度的任意字符(之前的字符连续出现任意次数)

var a = /h*o/
a.test(hello zuijinhaoma zhoujielun)//true
var b = /^h*o$/
a.test(hello zuijinhaoma zhoujielun)//false
经验分享 程序员 微信小程序 职场和发展