再也不用怕正则表达式了
有些知识,我们只需要付出一点点时间,把它掌握了,会大大提高我们的效率,节省我们的时间。正则表达式就是这样的知识,但是,作为入行好几年的我来说,正则表达式一直是一头雾水,今天决定把它好好研究研究。
什么是正则表达式
正则表达式是一组由字母和符号组成的特殊文本, 它可以用来从文本中找出满足你想要的格式的句子.
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