validateform.js

来自「Jbuilder2006开发的严格按MVC设计模式组织开发过程」· JavaScript 代码 · 共 284 行

JS
284
字号
//file: validateForm.js

//校验是否全由数字组成
function isDigit(s,msg){
  var patrn=/^[0-9]{1,20}$/;
  if(!patrn.exec(s)){
    alert(msg);
    return false
  }else{
    return true;
  }
}

//校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串
function isRegisterUserName(s,msg){
  var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;
  if (!patrn.exec(s)){
    alert(msg);
    return false
  }else{
    return true;
  }
}

//校验用户姓名:只能输入1-30个以字母开头的字串
function isTrueName(s,msg){
  var patrn=/^[a-zA-Z]{1,30}$/;
  if (!patrn.exec(s)){
    alert(msg);
    return false
  }else{
    return true;
  }
}

//校验密码:只能输入6-20个字母、数字、下划线
function isPasswd(s,msg){
  var patrn=/^(\w){6,20}$/;
  if (!patrn.exec(s)){
    alert(msg);
    return false
  }else{
    return true;
  }
}

//校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-”
function isTel(s,msg){
  //var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+$/;
  var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
  if (!patrn.exec(s)){
    alert(msg);
    return false
  }else{
    return true;
  }
}

//校验手机号码:必须以数字开头,除数字外,可含有“-”
function isMobil(s,msg){
  var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
  if (!patrn.exec(s)){
    alert(msg);
    return false
  }else{
    return true;
  }
}

//校验邮政编码
function isPostalCode(s,msg){
  //var patrn=/^[a-zA-Z0-9]{3,12}$/;
  var patrn= /^\d{6}$/;
  if (!patrn.exec(s)){
    alert(msg);
    return false
  }else{
    return true;
  }
}

//邮件检测
function isEmail(theStr,msg) {
  var atIndex = theStr.indexOf('@');
  var dotIndex = theStr.indexOf('.', atIndex);
  var flag = true;
  theSub = theStr.substring(0, dotIndex+1)
  if ((atIndex < 1)||(atIndex != theStr.lastIndexOf('@'))||(dotIndex < atIndex + 2)||(theStr.length <= theSub.length)){
    alert(msg);
    return false;
  }else{
    return true;
  }
}

// 手机号/小灵通号
function CheckMobile(s,msg){
 var patrn= /^\d{11,12}$/;
 if(!patrn.exec(s)){
    alert(msg);
    return false;
 }else{
    return true;
  }

}

// 15位身份证号
function CheckNum15(s,msg){
 var patrn= /^\d{15}$/;
 if(!patrn.exec(s)){
  alert(msg);
  return false;
 }else{
  return true;
  }

}

// 18位身份证号
function CheckNum18(s,msg){
 var patrn= /^\d{17}(?:\d|x)$/;
 if(!patrn.exec(s)){
  alert(msg);
  return false;
  }else{
    return true;
  }
}

// 字母或数字
function CheckCharOrNum( s){
 var patrn= /^\w+$/;
 if(!patrn.exec(s)){return false;}else{return true;}
}

//判断日期
function isDate(theStr,msg){
 var the1st = theStr.indexOf('-');
 var the2nd = theStr.lastIndexOf('-');
 if (the1st == the2nd) {
   alert(msg);
   return false;
 }else {
  var y = theStr.substring(0,the1st);
  var m = theStr.substring(the1st+1,the2nd);
  var d = theStr.substring(the2nd+1,theStr.length);
  var maxDays = 31;
  if (isInt(m)==false || isInt(d)==false || isInt(y)==false) {
  alert(msg);
   return false;
  } else if (y.length < 4) {
    alert(msg);
    return false ;
  } else if (!isBetween (m, 1, 12)) {
  alert(msg);
   return false;
  } else if (m==4 || m==6 || m==9 || m==11) {
   maxDays = 30;
  } else if (m==2) {
   if (y % 4 > 0) {
    maxDays = 28;
   }else if (y % 100 == 0 && y % 400 > 0) {
    maxDays = 28;
   }else{
     maxDays = 29;
   }
  }
  if (isBetween(d, 1, maxDays) == false) {
  alert(msg);
   return false;
  }else{return true;}
 }
}

//判断范围
function isBetween (val, lo, hi,msg) {
  if ((val < lo) || (val > hi)) {
    alert(msg);
    return(false);
  }else{return true;}
}

//判断是否为Int型
function isInt (str,msg) {
  if(!str.match("^-?\\d+$")){
    alert(msg);
    return false;
  }else{return true;}
}

//判断是否为正浮点数
function isPlusFloat(str,msg) {
  if(!str.match("^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$")){
    alert(msg);
    return false;
  }else{return true;}
}

//判断是否为浮点数
function isFloat(str,msg) {
  if(!str.match("^(-?\\d+)(\\.\\d+)?$")){
    alert(msg);
    return false;
  }else{return true;}
}

//是否为非负整数
function isNotMinusIntType(str,msg) {
  if(!str.match("^\\d+$")){
    alert(msg);
    return false;
  }else{return true;}
}

//是否为非负浮点数
function isNotMinusFloat(str,msg){
  if(!str.match("^\\d+(\\.\\d+)?$")){
    alert(msg);
    return false;
  }else{return true;}
}

function isNotMinusFloat1(value){
  if(!value.match("^\\d+(\\.\\d+)?$")){
    return false;
  }else{return true;}
}

function require(str,msg){
  if(str==null || str.length=='0'){
    alert(msg);
    return false;
 }else{return true;}
}
/*
  客户端表单验证
*/
//-------------------------------------------------------------------------------------------------------------------------------
function checkClientForm(){
  var inputObj=document.getElementsByTagName("input");
  for(var i=0;i<inputObj.length;i++){
    var requiredMsg="";
    var formatErrMsg="";
    if(inputObj[i].required=="true"){

      requiredMsg=inputObj[i].attributeName+"不能为空!";
      if(!require(inputObj[i].value,requiredMsg)){return false;}
    }
    if(typeof(inputObj[i].valueType)!="undefined"){
      formatErrMsg=inputObj[i].attributeName+"格式错误!";
      if(inputObj[i].required=="false" && inputObj[i].value==""){
        return true;
      }
      if(inputObj[i].valueType=="isEmail"){
        if(!isEmail(inputObj[i].value,formatErrMsg)){return false;}
      }
      if(inputObj[i].valueType=="isNotMinusFloat"){
        if(!isNotMinusFloat(inputObj[i].value,formatErrMsg)){return false;}
      }
      if(inputObj[i].valueType=="isFloat"){
        if(!isFloat(inputObj[i].value,formatErrMsg)){return false;}
      }
      if(inputObj[i].valueType=="isNotMinusIntType"){
        if(!isNotMinusIntType(inputObj[i].value,formatErrMsg)){return false;}
      }
      if(inputObj[i].valueType=="isPlusFloat"){
        if(!isPlusFloat(inputObj[i].value,formatErrMsg)){return false;}
      }
      if(inputObj[i].valueType=="isInt"){
        if(!isInt(inputObj[i].value,iformatErrMsg)){return false;}
      }
      if(inputObj[i].valueType=="isDate"){
        if(!isDate(inputObj[i].value,formatErrMsg)){return false;}
      }
      if(inputObj[i].valueType=="isPostalCode"){
        if(!isPostalCode(inputObj[i].value,formatErrMsg)){return false;}
      }
    }
  }
  return true;
}
//-------------------------------------------------------------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?