表单验证

第一个简单的js代码:

function biaodan(id) {  
       return document.getElementById(id);  
   }  
     
   function check(){  
       var email = biaodan("email").value;  
       var password = biaodan("password").value;  
       var repassword = biaodan("repassword").value;  
       var name = biaodan("name").value;  
         


       if(email == ""){  
           alert("Email值不能为空");  
           biaodan("email").focus(); 
           return false;  
       }   
       else if(email.indexOf("@") == -1 || email.indexOf(".") == -1) { 
       //indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。 
           alert("邮箱格式不正确,必须包含@和.");  
           biaodan("email").focus();  
           return false;  
       } 
       else if(email.indexOf("@")==0||email.indexOf("@")==email.length-1)
          {
          alert("'@'不能在最前端或最后端");
           biaodan("email").focus();
          return false;
          }
          else if(email.indexOf(".")==0||email.indexOf(".")==email.length-1)
          {
          alert("'.'不能在最前端或最后端");
           biaodan("email").focus();
          return false;
          }
          else if(email.indexOf(".")-(email.indexOf("@"))<=0)
          {
          alert("'.'必须在'@'的后面");
           biaodan("email").focus();
          return false;
          }
          else if(email.indexOf(".")-(email.indexOf("@"))<=1)
          {
          alert("'@'和'.'中间必须有字符");
           biaodan("email").focus();
          return false;
          }
 
         
       if(password == "") {  
           alert("密码不能为空");  
           biaodan("password").focus();  
           return false;  
       }  
         
       else if(password.length < 6) {  
           alert("密码长度必须大于或者等于6");  
           biaodan("password").focus();  
           return false;  
       }  
         
       else if(repassword != password) {  
           alert("两次输入的密码不一致");  
           biaodan("repassword").focus();  
           return false;  
       }  
         
       if(name == "") {  
           alert("姓名不能为空");  
           biaodan("name").focus();  
           return false;  
       } 


       if (name != "") {
          var patt1=new RegExp("[0-9]");
          patt1.test(alert("姓名中不能包含数字"));
          biaodan("name").focus();
          return false;
       } 
     
       // else if(!(isNaN(name))){
       //    //for(var i = 0; i < name.length; i++) {  
       //     //  var j = name.subString(i , i+1);  //substring() 方法用于提取字符串中介于两个指定下标之间的字符。
       //      // if(isNaN(j) == false) {  //isNaN() 函数用于检查其参数是否是非数字值。
       //           alert("姓名中不能包含数字");  
       //           biaodan("name").focus();  
       //           return false; 
       //        //}   
       // } 
  }

第二个复杂的js代码:

function getLength(str){
  // \x00-xff代表单字节字符。
  return str.replace(/[^\x00-\xff]/g, "xx").length;
}
 
function findStr(str, n){
  var tmp = 0;
  for (var i = 0; i < str.length; i++){
    if(str.charAt(i)==n){
      tmp++;
    }
  }
  return tmp;
}
 
window.οnlοad=function(){
  var aInput = document.getElementsByTagName('input');//getElementsByTagName() 方法可返回带有指定名称的所有元素的一个节点列表。
  var oName = aInput[0];
  var pwd = aInput[1];
  var pwd2 = aInput[2];
  var aP = document.getElementsByTagName('p');
  var name_msg = aP[0];
  var pwd_msg = aP[1];
  var pwd2_msg = aP[2];
  var count = document.getElementById('count');
  var aEm = document.getElementsByTagName('em');
  var name_length = 0;
 
//会员名
 
  oName.onfocus = function(){
    name_msg.style.display = "inline";
    name_msg.innerHTML = '<i class="ati"></i>☺ 5-25个字符,一个汉字为两个字符,推荐使用中文会员名。'
  }
 
  oName.onkeyup = function(){
    count.style.visibility = "visible";
    name_length = getLength(this.value);
    count.innerHTML = name_length + "个字符";
    if(name_length==0){
      count.style.visibility = "hidden";
    }
  }
 
  oName.onblur = function(){
    //含有非法字符            
    var reg = /[^\w\u4e00-\u9fa5]/g;    // \w代表“数字、字母(不分大小写)、下划线”,\u4e00-\u9fa5代表汉字。 
 
    if(reg.test(this.value)){
      name_msg.innerHTML = '<i class="err"></i>☹ 含有非法字符!'
    }
 
    //不能为空
    else if (this.value==""){
      name_msg.innerHTML = '<i class="err"></i>☹ 不能为空!'
    }
 
    //长度超过25个字符
    else if (name_length > 25){
      name_msg.innerHTML = '<i class="err"></i>☹ 长度超过25个字符!'
    }
 
    //长度少于6个字符
    else if (name_length < 6){
      name_msg.innerHTML = '<i class="err"></i>☹ 长度少于6个字符!'
    }
 
    //OK
    else {
      name_msg.innerHTML = '<i class="ok"></i>☺ OK!'
      count.style.visibility = "hidden";
    }
  }
 
//密码 
  pwd.onfocus = function(){
    pwd_msg.style.display = "inline";
    pwd_msg.innerHTML = '<i class="ati"></i>☺ 6-16个字符,请使用字母加数字或符号的组合密码.'
  }
 
  pwd.onkeyup = function(){
    //大于5字符为“中”
    if(this.value.length>5){
      aEm[1].className = "active";
      pwd2.removeAttribute("disabled");
      pwd2_msg.style.display = "inline";
    }
    else{
      aEm[1].className = "";
      pwd2.setAttribute("disabled");
      pwd2_msg.style.display = "none";      
    }
 
    //大于10字符为“强”
    if(this.value.length>10){
      aEm[2].className = "active";
    }else{
      aEm[2].className = "";
    }
  }
 
  pwd.onblur = function(){
    var m = findStr(pwd.value, pwd.value[0]);
 
    var reg_n = /[^\d]/g;
    var reg_c = /[^a-zA-Z]/g;
 
    //不能为空
    if(this.value==""){
      pwd_msg.innerHTML = '<i class="err"></i>☹ 不能为空!'
    }
    //不能用相同字符
    else if(m == this.value.length){
      pwd_msg.innerHTML = '<i class="err"></i>☹ 不能用相同字符!'
    }
    //长度应为6-16个字符
    else if(this.value.length < 6 || this.value.length > 16){
      pwd_msg.innerHTML = '<i class="err"></i>☹ 长度应为6-16个字符!'
    }
    //不能全为数字
    else if(!reg_n.test(this.value)){
      pwd_msg.innerHTML = '<i class="err"></i>☹ 不能全为数字!'
    }
    //不能全为字母
    else if(!reg_c.test(this.value)){
      pwd_msg.innerHTML = '<i class="err"></i>☹ 不能全为字母!'
    }
    //OK
    else{
      pwd_msg.innerHTML = '<i class="ok"></i>☺ OK!'
    }
  }
 
//确认密码
 
  pwd2.onblur = function(){
  	 pwd2_msg.style.display = "inline";
    if(this.value != pwd.value){
      pwd2_msg.innerHTML = '<i class="err"></i>☹ 两次输入的密码不一致!'
    }
    else{
      pwd2_msg.innerHTML = '<i class="ok"></i>☺ OK!'
    }
  }
}

还是有些问题,比如反应不灵敏,样式不好看。还在改进中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值