美文网首页
正则表达式中test、exec、match

正则表达式中test、exec、match

作者: zhulichao | 来源:发表于2020-07-23 09:19 被阅读0次
    **test**查找对应的字符串中是否存在模式,返回Boolean。当一个具有g标志的正则表达式调用test方法时,它的行为和exec相同,会从上个匹配的位置(index + 当前匹配项的长度)开始查找,这样我们就可以使用方法test来遍历字符串了。
    
    ```
    var str = "1a1b1c";
    var reg = new RegExp("1.", "g");
    console.log(reg.test(str)); // true
    console.log(reg.test(str)); // true
    console.log(reg.test(str)); // true
    console.log(reg.test(str)); // false
    ```
    
    **exec**查找并返回当前的匹配结果,并以数组的形式返回,如果不存在模式则返回null,否则总是返回一个长度为1的数组,其值就是当前匹配项,还有两个属性:index为当前匹配项的位置;input就是参数字符串。exec方法受参数g的影响。若指定了g,则下次调用exec时,会从上个匹配的位置(index+当前匹配项的长度)开始查找。
    
    ```
    var str = "1a1b1c";
    var reg = new RegExp("1.", "g");
    console.log(reg.exec(str)); // ["1a", index: 0, input: "1a1b1c"]
    console.log(reg.exec(str)); // ["1b", index: 2, input: "1a1b1c"]
    ```
    
    **match**是String对象的一个方法。match这个方法有点像exec,但exec是RegExp对象的方法。二者有一个不同点,就是对参数g的解释。如果指定了参数g,那么match一次返回所有的结果组成的数组,没有匹配则返回null。
    
    ```
    var str = "1a1b1c";
    var reg = new RegExp("1.", "g");
    console.log(str.match(reg)); // ["1a", "1b", "1c"]
    ```
    

    相关文章

      网友评论

          本文标题:正则表达式中test、exec、match

          本文链接:https://www.haomeiwen.com/subject/bbtjhktx.html