美文网首页
正则表达式

正则表达式

作者: charlotte2018 | 来源:发表于2017-11-21 15:04 被阅读14次

正则概述

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>


<script>
    //正则定义。(1.内置对象法。  2.字面量)

    //1.对象定义法
    var reg1 = new RegExp(/abc/);

    //2.字面量[]{}/a/
    var reg2 = /def/;
    console.log(reg2);
    console.log(typeof reg2);


    //使用:test();正则表带是有一个方法,test,有一个返回值是bool类名,决定参数是否符合正则表达式

    console.log(reg1.test("abc"));
    console.log(/abc/.test("hjkl"));

</script>

</body>
</html>

五大内部类

预定义类

50BBDFA4-A9CB-48BA-8583-32464F8781E7.png
         //. [^\n\r] 除了换行和回车之外的任意字符(“”不行)
//        console.log(/./.test("\n\r"));   //false
//        console.log(/./.test("adsfadsgdfgdfg")); //true

          //\d [0-9] 数字字符   \D [^0-9] 非数字字符
//        console.log(/\d/.test(123)); //true
//        console.log(/\d/.test("adsfadsgdfgdfg")); //false
//
          //\s [ \t\n\x0B\f\r] 空白字符  \S [^ \t\n\x0B\f\r] 非空白字符
//        console.log(/\s/.test("     ")); //true
//        console.log(/\s/.test("asdfadsf")); //false

         //\w [a-zA-Z_0-9] 单词字符  \W [^a-zA-Z_0-9] 非单词字符
//        console.log(/\w/.test("$")); //false
//        console.log(/\w/.test("_")); //true

简单类

   //必须是完整的,只多不能少
        console.log(/chaoge/.test("chaoge")); //true
        console.log(/chaoge/.test("chaogenihao")); //true
        console.log(/chaoge/.test("nihaochaoge")); //true
        console.log(/chaoge/.test("chaonihaoge")); //false
        console.log(/chaoge/.test("chao")); //false
//
          //只要包含里面的任何一个就可以
        console.log(/[chaoge]/.test("chaoge")); //true
        console.log(/[chaoge]/.test("chaogenihao"));//true
        console.log(/[chaoge]/.test("nihaochaoge"));//true
        console.log(/[chaoge]/.test("chaonihaoge"));//true
        console.log(/[chaoge]/.test("chao"));//true
        console.log(/[chaoge]/.test("a;ljr jglkrj grjgr"));//true
        console.log(/[chaoge]/.test("*"));//false

负向类

         //不够和正好,返回 false;多了或者没有返回 true
//        console.log(/[^abc]/.test("iiii"));//true
//        console.log(/[^abc]/.test("aiiii"));//只有一部分睁一只眼闭一只眼true
//        console.log(/[^abc]/.test("abc"));//false
//        console.log(/[^abc]/.test("b"));//false
//        console.log(/[^abc]/.test("bcdef"));//只有一部分睁一只眼闭一只眼true
//        console.log(/[^abc]/.test("abcdef"));//只有一部分睁一只眼闭一只眼true

范围类

//        console.log(/[a-c]/.test("dghhj")); //false
//        console.log(/[a-c]/.test("b")); //true

组合类

             console.log(/[a-c1-6]/.test("dghhj")); //false
            console.log(/[a-c1-6]/.test("b")); //true
            console.log(/[a-c1-6]/.test(8)); //false
            console.log(/[a-c1-6]/.test(3)); //true
            console.log(/[a-c1-6]/.test("addddd")); //true

正则边界

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <script>
        //边界必须是abc
        console.log(/^abc$/.test("abc")); //true
        console.log(/^abc$/.test("a")); //false
        console.log(/^abc$/.test("ac")); //false
        console.log(/^abc$/.test("abcabc")); //false



    </script>
</body>
</html>

量词

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <script>
        //量词  (   *+?   {}  )

        //a的个数要 >=0
        console.log(/^a*$/.test("b")); //false
        console.log(/^a*$/.test(""));
        console.log(/^a*$/.test("a"));
        console.log(/^a*$/.test("aa"));
        console.log(/^a*$/.test("aaa"));
        console.log(/^a*$/.test("aaaa"));
        console.log(/^a*$/.test("aaaab")); //false


        //a的个数要 >=1
        console.log(/^a+$/.test("b")); //false
        console.log(/^a+$/.test("")); //false
        console.log(/^a+$/.test("a"));
        console.log(/^a+$/.test("aa"));
        console.log(/^a+$/.test("aaa"));
        console.log(/^a+$/.test("aaaa"));
        console.log(/^a+$/.test("aaaab")); //false


        //a的个数要么0,要么1;
        console.log(/^a?$/.test("b")); //false
        console.log(/^a?$/.test(""));  //true
        console.log(/^a?$/.test("a"));  //true
        console.log(/^a?$/.test("aa")); //false
        console.log(/^a?$/.test("aaa")); //false
        console.log(/^a?$/.test("aaaa")); //false
        console.log(/^a?$/.test("aaaab")); //false


        //{n} 一个参数,循环n次。
        //{n,} 一个参数,循环>=n次。
        //{n,m} 一个参数,循环n次到m次。
        console.log(/^a{1}$/.test("a"));
        console.log(/^a{1,}$/.test("aa"));
        console.log(/^a{1,4}$/.test("aaa"));
        console.log(/^a{1,4}$/.test("aaaa"));
        console.log(/^a{1,4}$/.test("aaaaa")); //false


        //括号提高运算优先级,| 前后有一个符合就可以
        console.log(/(abc)|(xyz)/.test("ab")); //false
        console.log(/(abc)|(xyz)/.test("abcd")); //true
        console.log(/(abc)|(xyz)/.test("xy")); //false
        console.log(/(abc)|(xyz)/.test("xyzaaa")); //true
        console.log(/(abc)|(xyz)/.test("abxy")); //false


    </script>
</body>
</html>

09-验证固定电话号.html

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <div class="box">
        <input type="text"/>
        <span>请输入!</span>
    </div>

    <script>
        //需求:验证座机号!
        //直辖市:三位-八位(010-82935150)
        //普通市:四位-七位(0314-3160186)

        //步骤:
        //1.老三步。
        //2.判断input里面的 值,是否符合正则标准。
        //3.符合给一个样式,不符合给另外一个样式。


        //1.老三步。
        var inp = document.getElementsByTagName("input")[0];
        var span = inp.nextElementSibling || inp.nextSibling;

        inp.onblur = function () {
            //2.判断input里面的值,是否符合正则标准。
//            var reg1 = /^0\d{2}-8\d{7}$/;
//            var reg1 = /^0\d{3}-3\d{6}$/;
            //两个都要执行
            var reg1 = /(^0\d{2}-8\d{7}$)|(^0\d{3}-3\d{6}$)/;

            if(reg1.test(inp.value)){
                //3.符合给一个样式,不符合给另外一个样式。
                span.style.color = "green";
                span.innerHTML = "恭喜您,输入正确!";
            }else{
                span.style.color = "red";
                span.innerHTML = "对不起,您输入的为非法字符!";
            }
        }



    </script>

</body>
</html>

10-验证中文名字.html

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <div class="box">
        <input type="text"/>
        <span>请输入!</span>
    </div>

    <script>

        //需求:输入名字,两位-四为。
        //原理: unicode(\u4e00-\u9fa5)编码{2,4}
        //步骤:
        //1.老三步
        //2.判断input中的value值是否符合正则标准
        //3.符合给一个样式,不符合给另外一个样式

        //1.老三步
        var inp = document.getElementsByTagName("input")[0];
        var span = inp.parentNode.children[1];

        inp.onblur = function () {
            //unicode(\u4e00-\u9fa5)编码{2,4}
            var reg = /^[\u4e00-\u9fa5]{2,4}$/;
            //2.判断input中的value值是否符合正则标准
            if(reg.test(this.value)){
                //3.符合给一个样式,不符合给另外一个样式
                span.style.color = "green";
                span.innerHTML = "恭喜您,输入正确!";
            }else{
                span.style.color = "red";
                span.innerHTML = "对不起,您输入的为非法字符!";
            }

        }


    </script>

</body>
</html>

11-三个方法.html

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <script>

        //trim();去除前后的空格
//        var str = "     你好  我很好!     ";
//        console.log(str);
//        console.log(str.trim());

        //replace(); 替换和全局替换值。 i忽略大小写  g全部替换
//        var str = "Today is fine day,today is fine day!"
//        console.log(str);
//        console.log(str.replace(/today/ig,"tomorrow"));


        //search();  给字符差索引
        var str = "abcdefg";
        console.log(str.search(/bc/));
        console.log(str.indexOf("bc"));



    </script>
</body>
</html>

12-trim封装.html

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <script>

        var str = "     你好,我      很好!      ";
        console.log(str);
//        console.log(str.trim());
        console.log(trim(str));

        function trim(str){
            var aaa = str.replace(/(^\s+)|(\s+$)/g,"");
            return aaa;
        }


        //面向对象学习
//        String.prototype.aaa = function () {
//            var aaa = str.replace(/(^\s+)|(\s+$)/g,"");
//            return aaa;
//        }
//        console.log(str.aaa());
    </script>
</body>
</html>

相关文章

  • Linux命令行与Shell脚本编程大全-shell正则表达式

    本章内容: 定义正则表达式 了解基本正则表达式 扩展正则表达式 创建正则表达式 定义正则表达式 正则表达式是你定义...

  • 正则相关

    正则表达式基本语法 正则表达式常见字符 正则表达式特殊字符 正则表达式数量词 正则表达式边界匹配 正则表达式逻辑或...

  • 正则表达式系列-1

    正则表达式系列-1正则表达式系列-2正则表达式系列-3正则表达式系列-4 什么是正则表达式 正则表达式就是用事先定...

  • 正则表达式

    正则表达式 - 教程正则表达式 - 简介正则表达式 - 语法正则表达式 - 元字符正则表达式 - 运算符优先级正则...

  • Python基础入门 - 正则表达式与综合实战

    1. 初识正则表达式 1.1 介绍 步骤介绍正则表达式入门及应用正则表达式的进阶正则表达式案例 1.2 正则表达式...

  • Java正则表达式参考

    Java正则表达式入门 java正则表达式应用 深入浅出之正则表达式(一) 深入浅出之正则表达式(二) 正则表达式...

  • 正则表达式

    正则表达式 正则表达式就是记录文本规则的代码 正则表达式常用的元字符 正则表达式常用的限定符 正则表达式举例:这里...

  • Python爬虫(十)_正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • python正则表达式

    本篇将介绍python正则表达式,更多内容请参考:【python正则表达式】 什么是正则表达式 正则表达式,又称规...

  • 正则表达式

    了解正则表达式基本语法 能够使用JavaScript的正则对象 正则表达式简介 什么是正则表达式 正则表达式:用于...

网友评论

      本文标题:正则表达式

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