• test,exec以及match三者的区别


    test

    • test 是regexp的方法,返回的是布尔值,检测对应得字符串是否匹配某种模式
    • 示例:
    var str="catastrop";
    var reg= new RegExp("cat","g");//(使用RegExp的模式)
    var reg2=/cat/g;(字面量模式)
    console.log(reg.test(str));//true
    console.log(reg2.test(str));//true
    

    exec

    • exec也是regexp的方法,查找并返回当前的匹配结果,以数组的形式返回
    • 示例:
    var str="catastrop";
    var reg=new RegExp("cat","");
    var getresult=reg.exec(str);
    console.log(getresult);
    
    • 说明:如果不存在模式,则getresult为null,否则getresult是一个长度为1的数组,其值就是当前匹配项,返回结果:["cat", index: 0, input: "catastrop"]

    全局模式与非全局模式的区别

    • exec 方法受参数 g 的影响。若指定了 g,则下次调用 exec 时,会从上个匹配的 lastIndex 开始查找。
    • 示例:
    var str = "1a1b1c";
    var reg = new RegExp("1.", "");
    alert(reg.exec(str)[0]);
    alert(reg.exec(str)[0]);
    
    • 上述两个输出都是 1a。现在再看看指定参数 g:
    var str = "1a1b1c";
    var reg = new RegExp("1.", "g");
    alert(reg.exec(str)[0]);
    alert(reg.exec(str)[0]);
    
    • 上述第一个输出 1a,第二个输出 1b。

    match

    • match是字符串的方法,查找并返回当前的匹配结果,并以数组的形式返回
    • match的非全局模式跟exec的方法返回值是一样的
    • 示例:
    var  string="catcat";
    var reg=new RegExp("cat","");
    console.log(string.match(reg));
    
    • 如果指定了参数g,那么match一次返回所有结果
    var  string="catcat";
    var reg=new RegExp("cat","g");
    console.log(string.match(reg));
    console.log(string.match(reg));
    
    • 返回结果:["cat", "cat"]
  • 相关阅读:
    《Effective C#中文版:改善C#程序的50种方法》读书笔记
    WPF总结
    定义集合属性(WPF)
    c#只读字段和常量的区别,以及静态构造函数的使用 .
    编程方法的参数
    关于事件的点滴总结
    线程间的消息(或数据)传递
    OOP的感悟
    VS2010快捷键大全----养成良好的习惯
    UTF-8里包括GB2312
  • 原文地址:https://www.cnblogs.com/wan-fei/p/8334772.html
Copyright © 2020-2023  润新知