美文网首页
JS正则表达式

JS正则表达式

作者: 流氓兔之夫 | 来源:发表于2018-07-13 23:25 被阅读15次

    1.创建JS正则表达式

        let reg1 = /abc/g;

        let reg2 = new Reg('abc', 'g');

    2.JS正则表达式的常用方法

        2.1 test

            reg1.test(字符串);

            查到则返回true,否则返回false。

            test方法的注意点

            如果表达式带有g修饰符,则每一次test方法都从上一次匹配结束的          位置开始匹配。

            例:

            let reg1 = /a/g;

            let reg1 = /a/g;

            let str1 = 'abcad';

            let r1 = reg1.test(str1);

            console.info(r1); // true

            r1 = reg1.test(str1);

            console.info(r1);//true

            r1 = reg1.test(str1);

            console.info(r1);// false

        2.2 exec

            返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回null。

           (1) 如果带g修饰符,继续匹配,会匹配到后面的字符

            var str = 'abcdabcb';

            var reg = /a/g;

            var res = reg.exec(str);

           // ["a", index: 0, input: "abcdabcb", groups: undefined]

            // ["a", index: 4, input: "abcdabcb", groups: undefined]

            (2) 如果不带g修饰符,继续匹配,每次都是从第一位开始匹配

              var str = 'abcdabcb';

            var reg = /a/g;

            var res = reg.exec(str);

            // ["a", index: 0, input: "abcdabcb", groups: undefined]

            // ["a", index: 0, input: "abcdabcb", groups: undefined]

            如果正则表达式包含圆括号,则返回的数组包含多个元素。首先是整个匹配的结果,后面是圆          括号里匹配的结果。

            var str = 'abcdabc';

            var reg = /(a)b(c)/;

            var res = reg.exec(str);

            console.log(res);//["abc", "a", "c", index: 0, input: "abcdabc"]

    3.字符串相关的正则表达式方法

        3.1 search

          搜索符合正则的内容,搜索到就返回出现的位置(从0开始,如果匹配的不只一个字母,则返            回第一次出现的位置),如果匹配失败就返回-1。

        3.2 match

        在字符串中搜索符合正则的内容,搜索成功就返回数组,否则返回null

        var str = "abcd";

        var reg1 = /a/;

        var reg2 = /a/g;

        console.log(str.match(reg1));//["a", index: 0, input: "abcd"]

        console.log(str.match(reg2)); // ['a']

       3.3 repace(正则表达式, 新字符串/replace函数)

        (1) 符合正则表达式的,替换成新字符串

             varstr = "xxx";

             console.log(str.replace('x','y'));//yxx

             console.log(str.replace(/x/,'y'));//yxx

             console.log(str.replace(/x/g,'y'));//yyy

            特殊字符

          (2) replace函数

            先看个例子:

    function replacer(match, a1, a2, a3, index, string) {

          console.info('match: ' + match); 5

          console.info('a1: ' + a1); // 空

          console.info('a2: ' + a2); //5

          console.info('a3: ' + a3); //空

          console.info('index: ' + index); // 0

          console.info('string: ' + string);原字符串

        return [a1, a2, a3].join(' ~ ');

    }

    var str = '5xyz45678%$&^';

    var reg = /([^\d]*)(\d*)([^\w]*)/

    var res = str.replace(reg, replacer);

    console.log(res);//xyz ~ 45678 ~ %$&^

    说明:

    (1) match 为匹配的字符串

    (2) a1为第一个子表达式匹配的字符

    (3) a2为第二个子表达式匹配的字符

    (3) a3为第三个子表达式匹配的字符

    (4) 匹配的索引位置

    (5) 完整的字符串

    参考文章:

    js正则表达式学习和总结

    相关文章

      网友评论

          本文标题:JS正则表达式

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