H5^Study

JS高级学习:正则表达式

2019-04-26  本文已影响0人  Merbng

正则表达式

限定符
     身份证正则表达式:
        15位或18位
        ([1-9][0-9]{14})|([1-9][0-9]{16}[0-9xX])

        ([1-9][0-9]{14})([0-9]{2}[0-9xX])?


        座机号码
        010-6012141
        0531-6127014

        [0-9]{3,4}[-][0-9]{8}
        \d{3,4}[-]/d{8}

        QQ号码
        [1-9][0-9]{5,10}

        手机号码
        ([1][358][0-9]{8})|([1][4][37][0-9]{8})|([1][7][01367][0-9]{8})

        \d{11}

邮箱正则表达式
[0-9a-zA-Z_.-]+[@][0-9a-zA-Z_.-]+([.][a-zA-Z]){1,2}

案例:验证密码的强度

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style type="text/css">
            #dv {
                width: 300px;
                height: 200px;
                position: absolute;
                left: 300px;
                top: 100px;
            }

            .strengthLv0 {
                height: 6px;
                width: 120px;
                border: 1px solid #ccc;
                padding: 2px;
            }

            .strengthLv1 {
                background: red;
                height: 6px;
                width: 40px;
                border: 1px solid #ccc;
                padding: 2px;
            }

            .strengthLv2 {
                background: orange;
                height: 6px;
                width: 80px;
                border: 1px solid #ccc;
                padding: 2px;
            }

            .strengthLv3 {
                background: green;
                height: 6px;
                width: 120px;
                border: 1px solid #ccc;
                padding: 2px;
            }
        </style>

    </head>
    <body>
        <div id="dv">
            <label for="pwd">密码</label>
            <input type="text" id="pwd" maxlength="16">
            <!--课外话题-->
            <div>
                <em>密码强度:</em>
                <em id="strength"></em>
                <div id="strengthLevel" class="strengthLv0"></div>
            </div>
        </div>
        <script src="../js/common.js"></script>
        <script type="text/javascript">
            // 获取文本框键盘抬起事件
            my$('pwd').onkeyup = function() {
                // 每次键盘抬起都要获取文本框的内容,验证文本框中有什么东西,
                // 得到一个级别,然后下面的div显示对应的颜色
                my$('strengthLevel').className = "strengthLv" + (this.value.length >= 6 ? getLvl(this.value) : 0);
            };
            // 给我密码,返回对应的级别
            function getLvl(pwd) {
                var lvl = 0; //默认级别是0
                // 密码中是否有数字
                if (/[0-9]/.test(pwd)) {
                    lvl++;
                }
                // 密码中是否有字母
                if (/[a-zA-Z]/.test(pwd)) {
                    lvl++;
                }
                // 密码中是否有特殊符号
                if (/[^0-9a-zA-Z_]/.test(pwd)) {
                    lvl++;
                }
                return lvl;
            };
        </script>
    </body>
</html>

案例:验证用户输入的是否是邮箱

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        请输入邮箱地址:<input type="text" name="" id="email" />
        <script type="text/javascript">
            document.getElementById('email').onblur=function(){
                var reg =/^[0-9a-zA-Z_.-]+[@][0-9a-zA-Z_.-]+([.][a-zA-Z]+){1,2}$/;
                if(reg.test(this.value)){
                    this.style.backgroundColor="green";
                }else{
                    this.style.backgroundColor="red";
                }
            }
        </script>
    </body>
</html>

案例:验证输入的是不是中文

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        请输入名字:<input type="text" name="" id="name" value="" />
        
    </body>
</html>

创建正则表达式对象

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <script type="text/javascript">
            
            // 两种方式创建
            
            // 对象创建
            var reg = new RegExp(/\d{5}/);
            var str = "我的100000";
            var flag = reg.test(str);
            console.log(flag);

            // 字面量方式创建正则表达式对象
            var reg = /\d{1,5}/;
            var flag = reg.test("我的书:10000");
            console.log(flag);
        </script>
    </body>
</html>

上一篇下一篇

猜你喜欢

热点阅读