js实现注册验证

常用的正则表达式大全:http://blog.csdn.net/onebigday/article/details/5429868
正则表达式在信息的匹配,验证上起很大的作用。
深入理解正则表达式http://www.cnblogs.com/China3S/archive/2013/11/30/3451971.html

这里记录一下学习js实现注册验证的小例子。新手勿喷【捂脸】。

一:css样式文件

*{
            margin: 0px;
            padding: 0px;
        }
        body{
            font-size: 16px;
            font-family: "微软雅黑","sans-serif","Arail";
        }
        form{
            width: 800px;
            height: 200px;
            padding-top: 100px;
            margin: 0 auto;
        }
        p{
            display: inline-block;
            margin-left: 10px;
            font-size: 12px;
            display: none;
        }
        #count{
            visibility: hidden;
            font-size: 14px;
            color: #666;
            margin-left: 90px;
        }
        i{
            width: 80px;
            height: 20px;
            display: inline-block;
        }
        em{
            background: #ffd099;
            width: 50px;
            height: 20px;
            color: #fff;
            font-weight: 800;
            line-height: 20px;
            text-align: center;
            display: inline-block;

        }
        .active{
            background:#ff6600;

        }
        .btnsubmit{
            margin-left: 80px;
            width: 12n0px;
            height: 30px;
            background: #ff6600;
            color: #fff;
            font-weight: 800;
            border:none;
            cursor: pointer;
            margin-top: 15px;
        }

二:主体部分

<form >
<div>
  <label><span>会员注册:</span>
  <input type="text" name="username" class="text">
  <p class="msg"><i></i>5-25个字符,汉字为两个字符,推荐使用中文会员名</p>
  </label>
</div>
<div><span></span><label><b id="count">0个字符</b></label></div>
<div><label><span>登录密码:</span>
  <input type="text" name="password" class="text">
  <p class="msg"><i></i>5-25个字符,汉字为两个字符,推荐使用中文会员名</p>
  </label>
</div>
<div><span></span><em class="active"></em><em></em><em></em></div>
<div><label><span>确认密码:</span>
  <input type="text" class="text" disabled="">
  <p class="msg"><i></i>请再输入一次密码确认</p>
  </label>
</div>
<div><input class="submitBtn" type="submit" value="同意协议并注册"></div>
</form>

三,Javascript部分

<script type="text/javascript">

        function getLength(str){
            return  str.replace(/\u4e00-\u9fa5/g,"xx").length;
        }
        function findStr(str,n){
            var temp=0;
            for (var i = 0; i < str.length; i++) {
                if (str.charAt(i)==n) {
                    temp++;
                }
            }
            return temp;
        }
        window.onload=function(){
            //获取元素
            var allinput=document.getElementsByTagName("input");

            var username=allinput[0];
            var pwd=allinput[1];
            var checkPwd=allinput[2];

            var allP=document.getElementsByTagName("p");
            var username_msg=allP[0];
            var pwd_msg=allP[1];
            var checkPwd_msg=allP[2];

            var ems=document.getElementsByTagName("em");

            var count=document.getElementById("count");
            var name_length=0;//username的长度

            /*用户名*/
            username.onfocus=function(){
                // 得到焦点时
                username_msg.style.display='inline-block';
                username_msg.innerHTML='5-25个字符,汉字为两个字符,推荐使用中文会员名';
            }
            username.onkeyup=function(){
                //当释放键盘按钮时,计算字符数
                count.style.visibility="visible";
                name_length=getLength(this.value);
                count.innerHTML=name_length+"个字符";
                if (name_length==0) {
                    count.style.visibility="hidden";
                }
            }
            username.onblur=function(){
                var re=/[^\w\u4e00-\u9fa5]/g;
                //含有非法字符
                if (re.test(this.value)) {
                    username_msg.innerHTML="含有非法字符";
                }
                // 不能为空
                else if (name_length==0) {
                    username_msg.innerHTML="用户名不能为空!";
                }
                // 长度不在5-25个字符之间
                else if (name_length>25||name_length<5) {
                    username_msg.innerHTML="长度不在5-25个字符之间!";
                }
                // ok
                else{
                    username_msg.innerHTML="ok!";
                }
            }

            /*密码*/
            pwd.onfocus=function(){
                pwd_msg.style.display="inline-block";
                pwd_msg.innerHTML="6-16个字符,必须是字母加数字";
            }
            pwd.onkeyup=function(){
                //根据密码的长度判断其强度
                //如果长度大于6-中
                if (this.value.length>6) {
                    ems[1].className="active";
                    checkPwd.removeAttribute("disabled");
                    checkPwd_msg.style.display='inline-block';
                }else{
                    ems[1].className="";
                    checkPwd.setAttribute("disabled","true");
                    checkPwd_msg.style.display='none';
                }
                // 如果长度大于10-强
                if (this.value.length>10) {
                    ems[2].className="active";
                }else{
                    ems[2].className="";
                }
            }
            pwd.onblur=function(){
                var re_d=/[^\d]/g;
                var re_a=/[^a-zA-Z]/g;
                var m=findStr(pwd.value,pwd.value[0]);
                //密码不能为空
                if (this.value="") {
                    pwd_msg.innerHTML="密码不能为空";
                }
                // 不能全部为数字
                else if (!re_d.test(this.value)) {
                    pwd_msg.innerHTML="密码不能都为数字!";
                }
                // 不能全部为字母
                else if (!re_a.test(this.value)) {
                    pwd_msg.innerHTML="密码不能都为字母";
                }
                // 不能全部用相同的字符
                else if (m==this.value.length) {
                    pwd_msg.innerHTML="密码不能全部用相同的字符";
                }
                // 长度在6-16之间
                else if (this.value.length>16||this.value.length<6) {
                    pwd_msg.innerHTML="密码应在长度在6-16之间";
                }
                // ok
                else{
                    pwd_msg.innerHTML="密码不能都为字母";
                }
            }

            /*确认密码*/
            checkPwd.onblur=function(){
                if (pwd.value!=checkPwd.value) {
                    checkPwd_msg.innerHTML='两次输入的密码不一致';
                }else{
                    checkPwd_msg.innerHTML='ok';
                }
            }
        }
    </script>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的 JS 表单验证实现网易免费邮注册的示例代码: ```javascript // 获取表单元素 var form = document.getElementById("register-form"); var emailInput = document.getElementById("email-input"); var passwordInput = document.getElementById("password-input"); var confirmPasswordInput = document.getElementById("confirm-password-input"); var agreementCheckbox = document.getElementById("agreement-checkbox"); // 验证函数 function validate() { // 获取表单值 var email = emailInput.value.trim(); var password = passwordInput.value.trim(); var confirmPassword = confirmPasswordInput.value.trim(); // 邮箱验证 if (!email) { alert("请输入邮箱!"); return false; } else if (!/^\w+@\w+\.\w+(\.\w+)?$/.test(email)) { alert("邮箱格式不正确!"); return false; } // 密码验证 if (!password) { alert("请输入密码!"); return false; } else if (password.length < 6 || password.length > 16) { alert("密码长度应为6-16位!"); return false; } // 确认密码验证 if (!confirmPassword) { alert("请确认密码!"); return false; } else if (password !== confirmPassword) { alert("两次输入的密码不一致!"); return false; } // 协议勾选验证 if (!agreementCheckbox.checked) { alert("请勾选同意《服务协议》!"); return false; } return true; } // 提交按钮点击事件 form.onsubmit = function() { return validate(); }; ``` 这个示例代码中,我们首先获取了表单元素以及各个表单输入框的元素,然后定义了一个 `validate()` 函数,用于验证表单输入是否合法。在验证函数中,我们分别对邮箱、密码、确认密码和协议勾选进行了验证,如果验证不通过则弹出相应的提示信息并返回 `false`,否则返回 `true`。最后,在提交按钮的点击事件中调用验证函数,如果返回 `true` 则允许提交表单,否则阻止表单提交。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值