正则表达式中的方法以及标识符

60 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第17天,点击查看活动详情

正则表达式的两种方法

正则表达式中有两种方法:test()、exec(),我们今天主要的就是说说exec这个方法,因为test这个方法比较简单,返回值就是true跟false两种

1.test()

 这个方法主要适用于判断你所要验证的字符串中是否符合你需要的条件,如果符合返回值就为true,不符合返回值就为false。经常用于验证账号或者密码的可用性。

2.exec()

这个方法是基于test方法之上的。如果他用test方法返回值为true,那就说明exec方法就能够帮助你在这段字符串中截取到你需要的某个或者某些字符;如果返回值为false的话,那exec的返回值就是为null(空)。这个方法有点缺陷,就他不会记住上一次做了什么,做到哪个位置了。即使你写了多个exec方法也是一样的,返回的值不会改变。

标识符

g(全局)

在我们的正则表达式的最后面加上一个g,就意味着这个正则表达式他变样了,从之前的不会记住之前的位置变成了记住之前的位置,当你写多个exec方法时它会将每一个满足的字符捕获出来。Exec方法多于满足条件时,exec的返回值为空。

    var str="123"
    var reg =/\d/g
    
    //当我们加了标识符g之后,他就会一个一个的捕获符合的字符
    var newstr1=reg.exec(str)   // 返回值为 1
    var newstr2=reg.exec(str)   // 返回值为 2
    var newstr3=reg.exec(str)   // 返回值为 3
    var newstr4=reg.exec(str)   // 返回值为 null
    
    

i (忽略大小写)

i跟g都是加在正则表达式的最后面,加上i之后呢这个正则表达式就会忽略字符串中的大小写。

   var reg=/[a-z]/i
   
   console.log(reg.test("AA"))   //由于正则表达式后面加了i可以忽略大小写,所以它的返回值为true
   console.log(reg.exec("AA"))   //返回值为A,也可以捕获到