JavaScript 正则表达式

本文通过两个HTML示例介绍了正则表达式在前端注册页面中的应用,用于验证用户名、密码和手机号码的格式。通过设置正则表达式,确保输入的用户名为6-12个单词字符,密码也为6-12位,手机号码为11位且以1开头。同时,利用JavaScript的onblur事件进行实时验证,显示错误提示信息。
摘要由CSDN通过智能技术生成
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>正则表达式</title>
</head>
<body>
    
</body>
<script>
    /*
        正则表达式
    •概念:正则表达式定义了字符串组成的规则

    定义:
    1.直接量:注意不要加引号
    var reg = /^\w{6,12}$/;
    2.创建 RegExp 对象
    var reg = new RegExp("^\\w{6,12}$");

    方法:
    test(str):判断指定字符串是否符合规则,返回true 或 false

    语法:
        定义
        ^:表示开始
        $:表示结束
        []:代表某个范围内的单个字符,比如:[0-9] 单个数字字符
        .:代表任意单个字符,除了换行和行结束符
        \w:代表单词宇符:宇母、数字、下划线(_),相当于[1A-Za-z0-9_] 
        \d:代表数字字符:相当于 [0-9]
    
        量词:
        +:至少一个  var reg=/^\w+$/;
        *:零个或多个
        ?:零个或一个
        {x}:x个
        {m,}:至少m个
        {m,n):至少m个,最多个
        */

    //    规则:单词字符组成6-12位
    var reg = /^\w{6,12}$/;

    var str ="abcbbb";

    var flg =reg.test(str);
    alert(flg);
</script>
</html>

 

正则表达式案例:注册页面的正则表达式 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>欢迎注册</title>
    
    <link rel="stylesheet" href="css/register.css">
</head>
<body>
    <div class="form-div">
        <div class="reg-content">
            <h1>欢迎注册</h1>
            <span>已有账号?</span> <a href="#">登录</a>
        </div>
        <form id="reg-form" action="#" method="get">
            <table>
                <tr>
                    <td>用户名</td>
                    <td class="inputs">
                        <input name="username" type="text" id="username">
                        <br>
                        <span id="username_err" class="err_msg" style="display: none;">用户不太受欢迎</span>
                    </td>
                </tr>

                <tr>
                    <td>密&nbsp;&nbsp;&nbsp;&nbsp;码</td>
                    <td class="inputs">
                        <input type="password" name="password" id="password">
                        <br>
                        <span id="password_err" class="err_msg" style="display: none;">密码格式错误</span>
                    </td>
                </tr>

                <tr>
                    <td>手机号</td>
                   <td class="inputs"><input name="tel" type="text" id="tel">
                    <br>
                    <span id="tel_err" class="err_msg" style="display: none;">手机号格式有误</span>
                   </td>
                </tr>
            </table>

            <div class="buttons">
                <input  value="注册" type="submit" id="reg_btn">
            </div>
            <br class="clear">
        </form>
    </div>
    
</body>
<script>
    /* 用户名的验证 */
    // 1.验证用户名是否符合规则
    // 1.1获取用户名的输入框
    var usernameInput = document.getElementById("username");

    //1.2绑定onblur 事件 失去焦点
    usernameInput.onblur = checkUsername;

    function checkUsername(){
        //1.3获取用户输入的用户名
       var username = usernameInput.value.trim();

    //    alert(username);
    // 1.4判断用户名是否符合规则:6-12  and 单词字符的组成
           //正则表达式
            var reg =/^\w{6,12}$/;
            var flag = reg.test(username);

            // var flag = username.length >=6 && username.length <= 12;
            if(flag){
                //符合规则
                document.getElementById("username_err").style.display = 'none';

            }else{
                //不符合规则
                document.getElementById("username_err").style.display = '';
            }
            return flag;
    }




        /* 密码的验证 */
    // 1.验证密码是否符合规则
    // 1.1获取密码的输入框
    var usernameInpu = document.getElementById("password");

    //1.2绑定onblur 事件 失去焦点
    usernameInpu.onblur = checkPassword;

    function checkPassword(){
        //1.3获取用户输入的密码
       var password = usernameInpu.value.trim();

    //    alert(username);
    // 1.4判断密码是否符合规则:6-12
             //正则表达式
            var reg =/^\w{6,12}$/;
            var flag = reg.test(password);

            // var flag = password.length>=6 && password.length<=12;
            if(flag){
                //符合规则
                document.getElementById("password_err").style.display ='none';
            }else{
                //不符合规则
                document.getElementById("password_err").style.display ='';
            }
            return flag;
    }


    /* 手机号的验证 */
    // 1.验证手机号是否符合规则
    // 1.1获取手机号的输入框
    var usernameInp = document.getElementById("tel");

    //1.2绑定onblur 事件 失去焦点
    usernameInp.onblur = checkTepon;

    function checkTepon() {
        //1.3获取用户输入的手机号
       var tel = usernameInp.value.trim();
    //正则表达式  长度是11,数组组成,第一位是1
    // 第一位只能在1范围内取值
            var reg =/^[1]\d{10}$/;
            var flag = reg.test(tel);

    //    记录结果
    //    var flag =tel.length==11;

    //    alert(username);
    // 1.4判断手机号是否符合规则:6-12
            if(flag){
                //符合规则
                document.getElementById("tel_err").style.display= 'none';
            }else{
                //不符合规则
                document.getElementById("tel_err").style.display = '';
            }
            return flag;
        }


    /*-------------------------------------------------------*/

    //1.获取表单对象
    var regForm = document.getElementById("reg-form");

    //2.绑定onsubmint 事件
    regForm.onsubmit=function(){
        //3.挨个判断每一个表单项目都符合要求,如果有一个不符合,则返回 false
      
       var flag =checkUsername()&&checkPassword()&&checkTepon();
       return flag;

    }



</script>

</html>

 

背景图片:

 

/* 把我们所有标签的内外边距清零 */
*{
    margin: 0;
    padding: 0;
    /* css3盒子模型 */
    /* box-sizing: border-box; */
}
/* em 和 i 斜体文字不倾斜 */
em,i{
    font-style: normal;
}
i{
    font-style: normal;
}
/* 去掉li的小圆点 */
li{
    list-style: none;
}
img{
    /* border 0 照顾低版本浏览器 如果外面包含了连接会有边框的问题 */
    border: 0;
    /* 取消图片底侧有空白缝隙的问题 */
    /* 垂直对齐中间 */
    vertical-align: middle;
}
.buttons{
    /* 当我们经过button 按钮的时候,鼠标变成小手 */
    /* 光标指针 */
    cursor: pointer;
}
a{
    color: #666;
    /* 文本装饰 */
    text-decoration: none;
}


body{
    background-image: url("../img/R-C.jpg");
    text-align: center;
}

table{
    border-collapse: collapse;
    border-spacing: 0;
}
.reg-content{
    text-align: center;
    /* margin-bottom:10px; */
   
    
}


td{
    padding: 0;
    height: 100px;
    text-align: center;

   

}

.inputs{
    vertical-align: top;

}

.clear{
    clear: both;
}

.clear:before, .clear::after{
    content: "";
    display: table;
}

.clear:after{
    clear: both;
}

.form-div{
    background-color: rgb(255, 255, 255,0.27);
    border-radius: 10px;
    border: 1px solid #aaa;
    width: 424px;
    margin-top: 150px;
    margin-left: 1050px;
    padding: 30px 0px 20px 0px;
    font-size: 16px;
    box-shadow: inset 0px 0px 10px rgba(255, 255, 255, 0.5),0px 0px 15px rgba(75, 75, 75, 0.3);
    text-align: left;
    
}
.form-div input[type="text"],.form-div input[type="password"]{
    width: 168px;
    margin: 10px;
    /* height: 30px; */
    line-height: 30px;
    font-size: 16px;
    /* margin-right: 50px; */
    margin-top: 35px;
    border-radius:6px;
    /* margin-top: 30px; */
}
.form-div input[type="submit"]{
    width: 168px;
    margin: 10px;
    /* height: 30px; */
    line-height: 20px;
    font-size: 16px;
    background-color:antiquewhite;
    border-radius:9px;
  
}
.form-div input[type="checkbox"]{
    margin: 20px 0 20px 10px;
}
.form-div input[type="button"],.form-div input[type="submit"]{
    margin: 10px 0px 0 0;
}


.form-div table{
    margin: 0 auto;
    text-align: right;
    color: rgba(64, 64, 64, 1.00);
}
.buttons{
    text-align: center;
    margin-left: 30px;
}

.err_msg{
    
    color: aqua;

}

最后效果:

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值