常用JS表单验证函数

  
// JavaScript Document
function delSpace(txt){ //清除字符串中所有的空白字符
 if(txt == null ){
  return "";
 }else{
  txt = txt.toString();
  txt = txt.replace(/\s{1,}/,"");
  return txt;
 }
}
function isQQ(txt){//是否为QQ号码,即5-9位数字
 if(txt == null || txt == ""){return false;}
 else{
  var regex = /[1-9]{1}[0-9]{4,8}/;
  return regex.test(txt);
 }
}
function isPhoneNum(txt){ //检测是否为电话号码(固定电话或手机)
 return isPhone(txt)||isMobile(txt);
}
function isPhone(txt){//检测是否为固定电话号码
 if(txt == null || txt == ""){return false;}
 else{
  var regex = /[0-9]{1}[0-9]{2,3}-[1-9]{1}[0-9]{5,8}/;
  return regex.test(txt);
 }
}
function isMobile(txt){//检测是否为手机号码
 if(txt == null || txt == ""){return false;}
 else{
  var regex = /13[0-9]{9}/;
  return regex.test(txt);
 }
}

function isEmail(txt){ //是否为电子邮件地址:xxx@xxx.xxx
 if(txt == null || txt == ""){return false;}
 else{
  var regex = /(.){1,}@(.){1,}\.(.){1,}/;
  return regex.test(txt);
 }
}
function isNumeric(txt){ //是否为数字
 if(txt == null || txt == ""){return false;}
 else{
  txt = delSpace(txt);
  return !isNaN(parseFloat(txt));
 }
}
function isInteger(txt){ // 是否为整数
 if(txt == null || txt == ""){return false;}
 else{
  txt = delSpace(txt);
  return ! isNaN(parseInt(txt));
 }
}
function isPositiveNumber(txt){ //是否为正数
 if(txt == null || txt == ""){return false;}
 else{
  txt = delSpace(txt);
  if(isNaN(parseInt(txt))){return false;}
  else{
   return (parseInt(txt) > 0);
  }
 }
}
function isDateFormat(txt){ //是否为合法的日期格式:YYYY-MM-DD
 if(txt==null || txt == ""){return false;}
 else{
  var regex = /[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,2}/;
  if( regex.test(txt) ){
   var noArr = txt.split("-");
   var year = eval(noArr[0]);
   var month = eval(noArr[1]);
   var day = eval(noArr[2]);
   if ( year < 1 || month < 1 || month > 12 || day < 1 || day > 31) {return false;}
   if ((month == 4 || month == 6 || month == 9 || month == 11) && day > 30){return false;}
   if (month == 2){
    if ((year % 4 != 0) && day > 29) { return false;}
    if (year % 4 == 0){
     if(year % 100 == 0 && year % 400 != 0 && day > 29){return false;}
     else if (day > 28){ return false;}
    }
   }
   return true;
  }else{return false;}
 }
}
function chkWordMount(obj,amt,indicator){ //限制某一输入控件的输入字符数并返回与目标字数的差值
 var objValue = obj.value;
 var len = objValue.length;
 if(len > amt){
  obj.value = objValue.substr(0,amt);
  indicator.innerText = "0";
 }else{
  indicator.innerText = amt - len ;
 }
}
function deltag(txt){
 var reg = /(<{1})([^<]{1,})(>{1})/;
 txt = txt.replace(reg,"");
 return txt;
}
function isIdCardNum(txt){ //检测15位或18位的身份证号
 if(txt == null || txt == ""){
  return false;
 }
 var idNo = txt.toString();
 var len = idNo.length;
 var reg;
 var noArr;
 var dateStr="";
 if(len != 15 && len != 18){
  return false;
 }else if(len == 15){
  reg = /(\d{3})(\d{3})(\d{2})(\d{2})(\d{2})(\d{3})/;
  if(reg.test(idNo)==false){
   return false;
  }else{
   noArr = reg.exec(idNo);
   dateStr = "19"+noArr[3]+"-"+noArr[4]+"-"+noArr[5];
   return isDateFormat(dateStr);
  }
 }else{
  reg = /(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})(\d{1})([0-9xX]{1})/;
  if(reg.test(idNo)==false){
   return false;
  }else{
   noArr = reg.exec(idNo);
   dateStr = noArr[7]+noArr[8]+noArr[9]+noArr[10]+"/"+noArr[11]+noArr[12]+"/"+noArr[13]+noArr[14];
   if(isNaN(new Date(dateStr)) == false){
    var wi = new Array(0,7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);
    var amt = 0;
    var i;
    var chkNo = new Array("1","0","X","9","8","7","6","5","4","3","2");
    for(i=1;i<18;i++){
     amt += (noArr[i]*wi[i]);
    }
    return (chkNo[amt % 11] == noArr[18].toUpperCase());
   }else{
    return false;
   }
  }
 }
}

 


 

posted @ 2006-12-19 10:03  '.Elvis.'  阅读(605)  评论(0)    收藏  举报