0
点赞
收藏
分享

微信扫一扫

JavaScript—正则表达式

请添加图片描述

        1、通过new去声明正则表达式
        第一个参数:正则表达式的主体  字符串
        第二个参数:修饰符
        【注】修饰符没有顺序
        2、省略new运算符去声明正则表达式
        3、通过常量赋值
    <script>
        //var box1 = new RegExp("hello","ig");
        //var box1 = RegExp("hello","ig");
        var box1 = /hello/ig;
        alert(box1);
    </script>

请添加图片描述
正则表达式方法

        正则表达式对象只有两个方法
        test
        格式:正则.test(字符串)
        功能:在字符串中匹配这个正则是否存在
        返回值:如果匹配成功返回true,匹配失败返回false

        exec
        格式:正则.exec(字符串)
        功能:在字符串中匹配这个正则是否存在
        返回值:返回匹配到的串,匹配成功,返回一个装有字符串的数组
                              匹配失败,返回null

正则.test(字符串)

    <script>
        var str = "how aRe you";
        var box = /are/i;
        alert(box.test(str));
    </script>

请添加图片描述
正则.exec(字符串)

    <script>
        var str = "how aRe you";
        var box = /are/i;
        alert(box.exec(str));
    </script>

请添加图片描述
请添加图片描述

       字符串的函数:
        match()
        格式:字符串.match(正则)
        功能:在字符串匹配是否有符合正则表达式
        返回值:匹配成功,返回装有匹配到子串的数组
                匹配失败,返回null
        replace()
        格式:字符串.replace(oldStr/正则,newStr);
        功能:用newStr将oldStr替换
        返回值:替换成功的新字符串
        split()
        格式:字符串.split(分割符/正则);
        功能:用分割符将原字符串进行分割
        返回值:分割剩下的子串组成的数组
        search()
        格式:字符串.search(子串/正则)
        功能:找到符合条件的子串第一次出现的位置
        返回值:
        如果找到,返回>=0的下标
        否则,返回-1

格式:字符串.match(正则)

    <script>
        var str = "how are Are you";
        var box = /are/ig;
        alert(str.match(box));
    </script>

请添加图片描述
格式:字符串.replace(oldStr/正则,newStr);

    <script>
        var str = "how are Are you";
        var newStr = str.replace(/are/ig,"*");
        alert(newStr);
    </script>

请添加图片描述
格式:字符串.split(分割符/正则);

   <script>
        var str = "how are Are you";
        var newStr = str.split(/are/i);
        alert(newStr);
    </script>

请添加图片描述
格式:字符串.search(子串/正则)

    <script>
        var str = "how are Are you";
        var newStr = str.search(/are/ig);
        alert(newStr);
    </script>

请添加图片描述
正则——元字符
请添加图片描述

        元字符: 在正则表达式中有特殊含义的字符
        单个数字和字符的元字符
        . 匹配单个的任意字符
        [范围]  匹配单个范围内的字符
        [0-9]   
        [a-zA-Z0-9_] 匹配单个的数字、字母、下划线
        [^范围]  匹配任意一个除括号范围内的字符
        [^0-9]   匹配任意一个非数字字符
        \w   匹配单个的数字、字母、下划线 等价于[a-zA-Z0-9_]
        \W   匹配单个的非数字、字母、下划线
        \d   匹配单个数字  等价于[0-9]
        \D   匹配单个非数字   等价于[^0-9]
        重复字符  x(任意的单个字符)
        x?  匹配0个或者1个x
        x+  匹配至少一个x字符
        x*  匹配任意个x字符
        x{m,n}  匹配至少m个,最多n个x字符,包括n
        x{n}    必须匹配n个x字符
       (xyz)+  小括号括起来的部分是当做单个字符处理
    <script>
        var str = "g_ogle";
        var box = /g.ogle/;
        alert(box.test(str));
    </script>

请添加图片描述

    <script>
        var str = "g1ogle";
        var box = /g[a-zA-Z0-9_]ogle/;
        alert(box.test(str));
    </script>

请添加图片描述

    <script>
        var str = "g%ogle";
        var box = /g[a-zA-Z0-9_]ogle/;
        alert(box.test(str));
    </script>

请添加图片描述

    <script>
        var str = "g1ogle";
        var box = /g\wogle/;
        alert(box.test(str));
    </script>

请添加图片描述

    <script>
        var str = "goo123le";
        var box = /goo\d+le/;
        alert(box.test(str));
    </script>

请添加图片描述

    <script>
        var str = "goo123le";
        var box = /goo\d{3}le/;
        alert(box.test(str));
    </script>

请添加图片描述

    <script>
        var str = "googabcabcle";
        var box = /goog(abc)+le/;
        alert(box.test(str));
    </script>

请添加图片描述
请添加图片描述

    <script>
        var str = "goog\nle";
        alert(str);
        var box = /goog\sle/;
        alert(box.test(str));
    </script>

请添加图片描述
请添加图片描述
请添加图片描述
只需要记前面两个就行了

    <script>
        var str = "google da";
        var box = /^google/;
        alert(box.test(str));
    </script>

请添加图片描述

    <script>
        var str = "google da";
        var box = /google$/;
        alert(box.test(str));
    </script>

请添加图片描述

       修饰符
i 忽略大小写
g 全局匹配
m 换行匹配
【注】如果在字符串,遇到换行,重新开始计算行首
    <script>
        var str = "1、bai123du\n2、go123le\n3、b123ing";
        var box = /^\d/gm;
        alert(str.replace(box,"*"));
    </script>

请添加图片描述
正则练习
(1)文件是否是压缩包 zip rar gz

    转义字符:
\.代表本来.字符的意思
\*代表本来*字符的意思
    <script>
        var box = /^\w+\.(zip|rar|gz)$/;
        alert(box.test("hello.zip"));
    </script>

请添加图片描述
(2)验证是否是正确的手机号码

var box = /^1\d{10}$/;

(3)验证是否是正确的身份证号码

var box = /^[1_9]\d{16}(\d|x)$/;

(4)验证字符串是否是纯中文

    <script>
        var box = /^[u4e00-\u9fa5]+$/;
        alert(box.test("南极"));
    </script>

请添加图片描述

举报

相关推荐

0 条评论