正则表达式的方法

正则表达式的方法

RegExp的语法:

var patt=new RegExp(pattern,modifiers);

或更简单的方法

var patt=/pattern/modifiers;

RegExp对象方法:
  • exec:所见字符串中指定的值,饭hi找到的值,并确定其位置

    •      let str = 'An apple a day,An apple a day.'
              let reg = new RegExp('(a)')
              let reg2 = /(?<first>\w{2})(?<second>\w{3})/
        
              console.log(reg2.exec(str))
              console.log(reg2.exec(str))
              console.log(reg2.exec(str))
      

      输出结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XcZUFBRm-1596010808074)(D:\MyData\yenm\AppData\Roaming\Typora\typora-user-images\image-20200729155023760.png)]

返回信息分析:

输出的结果为有三个,第一个是匹配到的整个匹配字符,第二三个分别是对应的命名捕获组。

groups:命名捕获组信息,输出的是自定义的捕获组名字以及对应捕获的内容

index: 返回匹配对象的下标位置

input:输入的被匹配的字符串

length: 输出结果的长度

此时没有使用g修饰符,所以连续三次的调用是同一个结果

在使用g后:

let reg2 = /(?<first>\w{2})(?<second>\w{3})/g

返回结果:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6uypR8H2-1596010808077)(D:\MyData\yenm\AppData\Roaming\Typora\typora-user-images\image-20200729155325064.png)]

返回的结果会在整个字符串进行全局匹配向后匹配

  • test:所见字符串中指定的值,返回true或false

        let reg2 = /(?<first>\w{2})(?<second>\w{3})/g
    
    	  console.log(reg2.test(str))
    

    输出结果:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jo5vyyt6-1596010808078)(D:\MyData\yenm\AppData\Roaming\Typora\typora-user-images\image-20200729155546051.png)]

  • toString:返回正则表达式的字符串

let reg2 = /(?<first>\w{2})(?<second>\w{3})/g
        console.log(reg2.toString())

返回结果:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-elvUqnwx-1596010808081)(D:\MyData\yenm\AppData\Roaming\Typora\typora-user-images\image-20200729155803356.png)]

支持正则表达式的String对象的方法

  • search()用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,如果没有找到仍和匹配的子串,则返回-1
 let reg2 = /(?<first>\w{2})(?<second>\w{3})/g
        console.log(str.search(reg2))
        console.log(str.search(reg2))

返回结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xeF0JID2-1596010808084)(D:\MyData\yenm\AppData\Roaming\Typora\typora-user-images\image-20200729160312947.png)]

返回结果是匹配到的子字符串的下标位置,假如匹配不到对应的字符串则返回-1 !!!

  • match()可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。

语法: array.match(regexp)

 let str = 'An apple a day,An apple a day.'
        let reg2 = /(?<first>\w{2})(?<second>\w{3})/g
        console.log(str.match(reg2))        
        console.log(str.match(reg2))		
		console.log(str.match(reg2))

返回结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-976vCNFM-1596010808085)(D:\MyData\yenm\AppData\Roaming\Typora\typora-user-images\image-20200729161317417.png)]

在不进行全局搜索的时候返回的不单单只是个字符串数组

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Il27SuAu-1596010808086)(D:\MyData\yenm\AppData\Roaming\Typora\typora-user-images\image-20200729161407780.png)]

  • replace():用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
let str = 'An apple a day,An apple a day.'
        let reg2 = /(?<first>\w{2})(?<second>\w{3})/g
        console.log(str.replace(reg2, 'newWord'))

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EpLe64GI-1596010808087)(D:\MyData\yenm\AppData\Roaming\Typora\typora-user-images\image-20200729161705176.png)]

总结: RegExp的方法和string方法要区分开调用关系,以及对于是不是要全局g修饰符的区别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值