乘风原创程序

  • JS中正则表达式的使用
  • 2020/8/10 9:32:58
  • 1、字面量的方式

    var reg = /abc/;
    

    2、构造函数

    var reg = new RegExp("abc");
    

    3、test()

    检测方法 找到匹配返回true,否则false

    var reg = new RegExp("abc");
    var str = "ab";
    var flag = reg.test(str);
    console.log(flag); //false
    
    //修饰符	g全局匹配	i忽略大小写
    var reg = /abc/gi;
    var str = "AbcABCabc";
    
    //match方法	字符串方法
    console.log(str.match(reg)); //["Abc", "ABC", "abc"]
    
    //seach方法	用于查找符合规则的子串的位置,只返回一个匹配的位置
    var reg = /abc/;
    var str = "12345abc";
    console.log(str.search(reg)); //5
    
    //split
    var reg = /good/;
    var str = "good good study";
    console.log(str.split(reg)); // ["", " ", " study"]
    
    //replace()
    var reg = /tmd/gi;
    var str = "abc tmd abc TMD";
    console.log(str.replace(reg, "*")); //abc * abc *
    
    //exec方法	正则表达式的方法,将匹配成功的内容放到数组里面,如果没有匹配成功,返回null
    var reg = /good/;
    var str = "good good study";
    console.log(reg.exec(str)); //["good", index: 0, input: "good good study", groups: undefined]
    console.log(reg.exec(str));
    console.log(reg.exec(str));
    
    //.	除了换行符之外所有的单个字符
    var reg = /g..gle/gi;
    var str = "goodleg--gle";
    console.log(reg.test(str)); //true
    console.log(str.match(reg)); //["g--gle"]
    
    //*重复多次匹配,匹配任意次(0-n)
    var reg = /g*gle/gi;
    var str = "gggggle";
    console.log(reg.test(str), str.match(reg)); //true ["gggggle"]
    
    //+	至少有一次重复匹配
    var reg = /g+gle/gi;
    var str = "ggle";
    console.log(reg.test(str));//true
    
    //?	进行0或者1次匹配
    var reg = /g?le/gi;
    var str = "gggggle";
    console.log(reg.test(str), str.match(reg));//true ["gle"]
    
    //[] 表示出现的范围	[0-9]
    var reg = /[a-z]/gi;
    var str = "123m4";
    console.log(reg.test(str));//true
    
    //\w 数字字母下划线,等同于[0-9a-zA-Z]		\W	非数字字母下划线
    var reg = /\w+/gi;
    var str = "abc13";
    console.log(reg.test(str), str.match(reg));//true ["abc13"]
    
    //\d 表示数字[0-9]	\D	非数字
    var reg = /\d+/gi;
    var str = "123abc";
    console.log(reg.test(str), str.match(reg));//true ["123"]
    
    //\s 匹配空格
    var reg = /\s+/gi;
    var str = "good good    study";
    console.log(str.replace(reg, " "));//good good study
    
    //{m,n} 至少匹配m次,至多匹配n次{m,}{,n}
    var reg = /go{3}gle/gi;
    var str = "gooogleg";
    console.log(reg.test(str));//true
    
    // /^匹配开始	$/匹配结束
    var reg = /^g.+g$/gi;
    var str = "gooogleg";
    console.log(reg.test(str));//true
    
    // | 或
    var reg = /google|baidu|bing|yahao/gi;
    var str = "www.baidu.com";
    console.log(reg.test(str), str.match(reg));//true ["baidu"]
    
    //() 分组,将内容作为一个整体进行匹配
    var reg = /(g.gle){4,6}/gi;
    var str = "googleaaagooglegooglegooglegoogle";
    console.log(reg.test(str), str.match(reg));//false null
    console.log(RegExp.$1);// 
    
    // $1 $2
    var reg = /(.*)\s(.*)/;
    var str = "taobao baidu";
    console.log(str.replace(reg, "$2 $1"));//baidu taobao
    

    在这里插入图片描述

    本文地址:https://blog.csdn.net/weixin_45191282/article/details/107898701