Html+Css+Js注册验证(正则表达式)

 Html部分

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <link rel="stylesheet" type="text/css" href="css/index.css" />
        <script src="js/index.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <form action="#" method="get">
            <span>用户名</span><input type="text" id="username" οnfοcus="getusername()" οnblur="loseusername()"/><div id="usernamemsg"></div><br>
            <span>手机号</span><input type="text" id="userphone" οnfοcus="getuserphone()" οnblur="loseuserphone()"/><div id="userphonemsg"></div><br>
            <span>密码</span><input type="password" id="userpwd1" οnfοcus="getuserpwd1()" οnblur="loseuserpwd1()"/><div id="userpwd1msg"></div><br>
            <span>确认密码</span><input type="password" id="userpwd2" οnblur="loseuserpwd2()"/><div id="userpwd2msg"></div><br>
            <input type="checkbox" id="usercheck" />阅读并接受<a href="#">《XX用户协议》</a><div id="usercheckmsg">验证用户是否接受百度用户协议</div><br>
            <input type="button" id="userbtn" value="注册" οnclick="usersubmit()"/>
        </form>
    </body>
</html>

Css部分

* {
    margin: 0;
    padding: 0;
}

form {
    width: 600px;
    height: 280px;
    border: solid 1px #ccc;
    margin: 200px auto;
    padding-top: 60px;
    position: relative;
}

span {
    display: inline-block;
    width: 80px;
    text-align: right;
}

input {
    margin-top: 10px;
}

input[type=text],
input[type=password] {
    width: 200px;
    height: 30px;
    margin-left: 10px;
    border: solid 1px #ccc;
}

input[type=checkbox] {
    margin-left: 90px;
}

input[type=button] {
    width: 205px;
    height: 30px;
    margin-left: 90px;
    background-color: #4490f7;
    color: #fff;
    border: none;
    border-radius: 3px;
}

a {
    text-decoration: none;
}

div {
    width: 260px;
    position: absolute;
    left: 310px;
    top: 68px;
    padding: 5px 10px;
    background-color: #f9f9f9;
    color: #bdbdbd;
    display: none;
}

#userphonemsg {
    top: 110px;
}

#userpwd1msg {
    top: 153px;
}

#userpwd2msg {
    top: 195px;
}

#usercheckmsg {
    top: 227px;
}
 

Js部分

// 一、当用户名文本框获取当前输入焦点时,提示用户“设置后不可更改中英文均可,最长 14个英文或 7 个汉字”。
//用户名获得焦点
function getusername() {
    var usernamemsg = document.getElementById('usernamemsg');
    usernamemsg.style.color = '#bdbdbd';
    usernamemsg.style.backgroundColor = '#f9f9f9';
    usernamemsg.style.border = 'solid 1px';
    usernamemsg.innerHTML = '设置后不可更改中英文均可<br>最长 14个英文或 7 个汉字';
    usernamemsg.style.display = 'block';
}
//用户名失去焦点
function loseusername() {
    var usernamemsg = document.getElementById('usernamemsg');
    var username = document.getElementById('username');
    var reg = /^[0-9A-Za-z\u4e00-\u9fa5]{1,14}$/;
    if (username.value == '') {
        usernamemsg.innerText = 'X请您填写用户名';
        usernamemsg.style.color = 'red';
        usernamemsg.style.backgroundColor = '#fff';
        usernamemsg.style.border = 'none';
        usernamemsg.style.display = 'block';
        return false;
    } else {
        if (!reg.test(username.value)) {
            //验证不成功
            usernamemsg.innerText = "X请输入正确的用户名";
            usernamemsg.style.color = "red";
            usernamemsg.style.backgroundColor = '#fff';
            usernamemsg.style.border = 'none';
            usernamemsg.style.display = 'block';
            return false;
        } else {
            //验证成功
            usernamemsg.innerText = "√";
            usernamemsg.style.color = "green";
            usernamemsg.style.backgroundColor = '#fff';
            usernamemsg.style.border = 'none';
            usernamemsg.style.display = 'block';
            return true;
        }
        return true;
    }
}
// 二、当手机号文本框获取当前输入焦点时,提示用户“请输入中国大陆手机号,其他用户不可见”。
//手机号获得焦点
function getuserphone() {
    var userphonemsg = document.getElementById('userphonemsg');
    userphonemsg.style.color = '#bdbdbd';
    userphonemsg.style.backgroundColor = '#f9f9f9';
    userphonemsg.style.border = 'solid 1px';
    userphonemsg.innerHTML = '请输入中国大陆手机号<br>其他用户不可见';
    userphonemsg.style.display = 'block';
}
//手机号失去焦点
function loseuserphone() {
    var userphonemsg = document.getElementById('userphonemsg');
    var userphone = document.getElementById('userphone');
    var reg = /^(0|86|17951)?(13[0-9]|15[012356789]|17[0135678]|18[0-9]|14[579])[0-9]{8}$/;
    if (userphone.value == '') {
        userphonemsg.innerText = 'X请您填写手机号';
        userphonemsg.style.color = 'red';
        userphonemsg.style.backgroundColor = '#fff';
        userphonemsg.style.border = 'none';
        userphonemsg.style.display = 'block';
        return false;
    } else {
        if (!reg.test(userphone.value)) {
            //验证不成功
            userphonemsg.innerText = "X请输入正确的手机号";
            userphonemsg.style.color = "red";
            userphonemsg.style.backgroundColor = '#fff';
            userphonemsg.style.border = 'none';
            userphonemsg.style.display = 'block';
            return false;
        } else {
            //验证成功
            userphonemsg.innerText = "√";
            userphonemsg.style.color = "green";
            userphonemsg.style.backgroundColor = '#fff';
            userphonemsg.style.border = 'none';
            userphonemsg.style.display = 'block';
            return true;
        }
        return true;
    }
}
// 三、当密码文本框获取当前输入焦点时,提示用户“长度为 6~14 个字符;支持数字、大小写字母和标点符号;不允许有空格”。
//密码1获得焦点
function getuserpwd1() {
    var userpwd1msg = document.getElementById('userpwd1msg');
    userpwd1msg.style.color = '#bdbdbd';
    userpwd1msg.style.backgroundColor = '#f9f9f9';
    userpwd1msg.style.border = 'solid 1px';
    userpwd1msg.innerHTML = '长度为 6~14 个字符<br>支持数字、大小写字母和标点符号<br>不允许有空格';
    userpwd1msg.style.display = 'block';
}
//密码1失去焦点
function loseuserpwd1() {
    var userpwd1msg = document.getElementById('userpwd1msg');
    var userpwd1 = document.getElementById('userpwd1');
    var reg = /^[0-9a-zA-Z|\.]{6,14}$/;
    if (userpwd1.value == '') {
        userpwd1msg.innerText = 'X请您填写密码';
        userpwd1msg.style.color = 'red';
        userpwd1msg.style.backgroundColor = '#fff';
        userpwd1msg.style.border = 'none';
        userpwd1msg.style.display = 'block';
        return false;
    } else {
        if (!reg.test(userpwd1.value)) {
            //验证不成功
            userpwd1msg.innerText = "X请输入正确的密码";
            userpwd1msg.style.color = "red";
            userpwd1msg.style.backgroundColor = '#fff';
            userpwd1msg.style.border = 'none';
            userpwd1msg.style.display = 'block';
            return false;
        } else {
            //验证成功
            userpwd1msg.innerText = "√";
            userpwd1msg.style.color = "green";
            userpwd1msg.style.backgroundColor = '#fff';
            userpwd1msg.style.border = 'none';
            userpwd1msg.style.display = 'block';
            return true;
        }
        return true;
    }
}
// 四、验证密码和确认密码是否相同
//密码2失去焦点
function loseuserpwd2() {
    var userpwd2msg = document.getElementById('userpwd2msg');
    var userpwd1 = document.getElementById('userpwd1');
    var userpwd2 = document.getElementById('userpwd2');
    if (userpwd2.value == '') {
        userpwd2msg.innerText = 'X请您填写密码';
        userpwd2msg.style.color = 'red';
        userpwd2msg.style.backgroundColor = '#fff';
        userpwd2msg.style.border = 'none';
        userpwd2msg.style.display = 'block';
        return false;
    } else {
        if (userpwd1.value == userpwd2.value) {
            //验证成功
            userpwd2msg.innerText = "√";
            userpwd2msg.style.color = "green";
            userpwd2msg.style.backgroundColor = '#fff';
            userpwd2msg.style.border = 'none';
            userpwd2msg.style.display = 'block';
            return true;
        } else {
            //验证不成功
            userpwd2msg.innerText = "X请输入一样的密码";
            userpwd2msg.style.color = "red";
            userpwd2msg.style.backgroundColor = '#fff';
            userpwd2msg.style.border = 'none';
            userpwd2msg.style.display = 'block';
            return false;
        }
        return true;
    }
}
// 单击注册按钮
function usersubmit() {
    // 提交数据时验证表单是否正确填写(验证用户是否接受百度用户协议,如果没有提示用户)。
    var usercheck = document.getElementById('usercheck');
    var usercheckmsg = document.getElementById('usercheckmsg');
    if (usercheck.checked == true) {
        var userchecked = true;
        usercheckmsg.style.display = 'none';
    } else {
        usercheckmsg.innerText = '请钩选阅读并接受《XX用户协议》';
        usercheckmsg.style.color = "red";
        usercheckmsg.style.backgroundColor = '#fff';
        usercheckmsg.style.border = 'none';
        usercheckmsg.style.display = 'block';
        userchecked = false;
    }
    // 当用户名、手机号、密码文本框失去当前输入焦点时,验证用户输入的信息是否符合要求并提示用户,确认密码文本框失去当前输入焦点时,验证密码和确认密码是否相同,并提示用户(用户名、手机号、密码、确认密码为必填项)。
    // 当全部正确则显示注册成功,否则就显示信息填写不对,请核对重新提交!
    loseusername();
    loseuserphone();
    loseuserpwd1();
    loseuserpwd2();
    if (loseusername() == true && loseuserphone() == true && loseuserpwd1() == true && loseuserpwd2() == true &&
        userchecked == true) {
        alert('注册成功');
    } else {
        alert('信息填写不对,请核对重新提交!');
    }
}
 

  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值