js验证框架实现代码分享


Posted in Javascript onMay 18, 2016

本文实例为大家分享了js验证框架,很实用,供大家参考,具体内容如下

1、关键方法和原理:

function check(thisInput) 方法中的
 if (!eval(scriptCode)) { 
     return false;
    }

2、调用示例:

 <input type="text" class="text_field percentCheck" name="progress_payment_two" id="progress_payment_two" inputName="进度款2比例(%)" validate="isNumeric;notNull" maxLength="350" value="" />

3、验证时会自动调用:isNumeric 方法 和 notNull方法并返回验证的结果信息。

4、验证框架源码如下

var ConfigValidateInfoType = "writeAlert"; //支持writeAlert和writePage,"writePage;writeAlert"
 
var rmTempStatusIsAlert = false;
 
var rmTempStatusIsFocus = false;
 
var beginValidate = true;
 
var set_All_Venus_Inputs_Default = true;
 
String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ""); } 
 
function checkAllForms(){
   
  var checkResult = true;
   
  rmTempStatusIsAlert = false;
  rmTempStatusIsFocus = false;
  setAllVenusInputsDefault();
 
  for (var i=0;i<document.forms.length;i++) {
    for (var j=0;j<document.forms[i].elements.length;j++) {
      var thisInput = document.forms[i].elements[j];
 
      if ( thisInput.type!="hidden" && thisInput.type!="button" && !( thisInput.id.indexOf("TF_")>=0 && thisInput.id.indexOf("_TF")>0 ) &&thisInput.clientWidth!=0&&thisInput.style&&thisInput.style.display!='none'){
        /*
        if(validateStr != null && validateStr.length > 0 ){
          if(thisInput.tagName == 'TEXTAREA' && srcstr != '') {
            srcstr = replaceEnter(srcstr);
            if( thisInput.maxLength != null && thisInput.maxLength > 0 ){
              if (getStrLength(srcstr) > thisInput.maxLength){
                writeValidateInfo(thisInput, "焦点处输入长度超长\n请确保输入长度在" +frm.maxLength+"以内");
                return false;
              }
            }
          }
        }
        */
        if(thisInput.id&&thisInput.id.indexOf("supplier_id_ref_")!=-1&&document.getElementById("unionDiv")&&document.getElementById("unionDiv").style.display=="none"){
          continue;
        }
         
        var rtValue = check(thisInput);
        if(checkResult && rtValue == false) {
          checkResult = false;
          break;
        }
      }
    }
  }
  return checkResult;
}
 
function check(thisInput) {
   
  var validateStr = thisInput.validate;
  if(validateStr == null) {
    return true;
  }
  var inputValue = thisInput.value;
  if ( beginValidate ) {
    var validateTemp = new Array(); 
    validateTemp = validateStr.split(';');
    for (var i=0;i<validateTemp.length;i++) {
      if(validateTemp[i].length == 0) {
        continue;
      }
      s = replaceSingleQuote(inputValue);
      try{
        var scriptCode = "javascript:" + validateTemp[i]; //"javascript:" + validateTemp[i] + "('" + s + "', " + "thisInput)"
        if(validateTemp[i].indexOf("(") < 0 || validateTemp[i].indexOf(")") < 0) {
          scriptCode = "javascript:" + validateTemp[i] + "(s,thisInput)"
        }
        if (!eval(scriptCode)) { 
          return false;
        }
      } catch(e) {
        alert("校验函数"+validateTemp[i]+"有异常,请检查!" + "\n" + e.message );
        return false;
      }
    }
  }
  return true;
}
 
function setAllVenusInputsDefault() {
  var frmslen = document.forms.length;
  for (var i=0;i<frmslen;i++) {
    var inslen = document.forms[i].elements.length;   
    for (var j=0;j<inslen;j++) {
      var frm = document.forms[i].elements[j]
      if ( frm.type!="hidden" && frm.type!="button" && !( frm.id.indexOf("TF_")>=0 && frm.id.indexOf("_TF")>0 ) ){
        if(frm.validate != null) {
          setVenusInputDefault(frm);
          writeValidateInfoAfterObject("", frm);
        }
      }
    }
  }
  return true;
}
 
function setVenusInputDefault(_frm) {
  _frm.style.borderStyle="";
  _frm.style.borderColor="";
  if( _frm.value != null ){
    _frm.style.backgroundColor = "";
    _frm.style.color = "";
  }
}
 
 
function replaceEnter(_str) {
  /**替换换行回车字符**/
  var str = _str;
 
  str = str.replace('\n','')
  str = str.replace('\r','')
   
  //alert(str.indexOf('\n'))
   
  if(str.indexOf('\n')!=-1 &&str.indexOf('\r')!=-1) { 
    return replaceEnter(str);
  } else {
    return str;
  }
}
 
function replaceSingleQuote(_str) {
  /**替换换行回车字符**/
  var str = _str;
  str = str.replace('\\','\\u005C');
  str = str.replace('\'','\\u0027'); 
  str = str.replace('(','\\u0028');
  str = str.replace(')','\\u0029');
  str = str.replace('\"','\\u0022');
  str = str.replace(';','\\u0038');
 
  //str = Jtrim(str);
 
  return str;
}
 
function isContains(_validateStr,_validator) {
  for (var i=0;i<_validateStr.length;i++)
  {
    if(_validateStr[i] == _validator)
      return true;
  }
   
  return false;
}
 
function writeValidateInfo(info, thisObj) {
  var inputName = getInputNameFromObject(thisObj);
  info = inputName + "的输入有误!\n" + info;
  if(ConfigValidateInfoType.indexOf("writePage") >= 0) {
    writeValidateInfoAfterObject(info, thisObj);
  }
  if(ConfigValidateInfoType.indexOf("writeAlert") >= 0) {
    writeValidateInfoAlert(info, thisObj);
  }
  if(!rmTempStatusIsFocus) {
    setVenusInputError(thisObj);
    rmTempStatusIsFocus = true;
  }
}
 
function setVenusInputError(_frm) {
  try {
    //_frm.click(); // click会导致文件上传错误
    _frm.focus();
    //由于SELCET不支持内容选择,且不用内容选择,所以特殊处理,防止报错
    //修改:李岳 2009-11-12
    if(_frm.tagName!="SELECT"){
      _frm.select();
    }
    _frm.style.borderStyle="dashed";
    _frm.style.borderColor="rgb(255,50,0)";
    if( _frm.value != null && _frm.value.length > 0 ){
      _frm.style.backgroundColor = "highlight";
      _frm.style.color = "white";
    } 
  } catch(e) {
    alert(e.message);
  }
}
 
function writeValidateInfoAlert(info, thisObj) {
  if(!rmTempStatusIsAlert) {
    alert(info);
    rmTempStatusIsAlert = true;
  }
}
 
function writeValidateInfoAfterObject(info, thisObj) { //写校验信息
  var validateInfoObj = null;
  thisObj = getValidatePosition(thisObj);
  if(thisObj.nextSibling != null && thisObj.nextSibling.nextSibling != null 
    && thisObj.nextSibling.tagName != null && thisObj.nextSibling.tagName.toUpperCase() == "FONT" 
    && thisObj.nextSibling.nextSibling.tagName.toUpperCase() == "SPAN" && thisObj.nextSibling.nextSibling.className == "font_remain_prompt") {
    validateInfoObj = thisObj.nextSibling.nextSibling;
  } else {
    thisObj.insertAdjacentHTML("afterEnd", "<font></font><span class=font_remain_prompt></span>");
    validateInfoObj = thisObj.nextSibling.nextSibling;
  }
  if(validateInfoObj.innerHTML.length > 0 || info.length > 0) {
    validateInfoObj.innerHTML = info;
  }
}
 
function getValidatePosition(thisObj) {
  if(thisObj.nextSibling != null && thisObj.nextSibling.className == "refButtonClass") {
    thisObj = getValidatePosition(thisObj.nextSibling);
  } else if(thisObj.nextSibling != null && thisObj.nextSibling.type == "hidden"){
    thisObj = getValidatePosition(thisObj.nextSibling);
  }
  return thisObj;
}
 
function getInputNameFromObject(thisInput) {
  var inputName = thisInput.inputName ;
  if ( inputName == null || inputName.length == 0 ){
    inputName = thisInput.name;
    if ( inputName == null || inputName.length == 0 ){
      inputName = "";
    }
  }
  return inputName;
}
 
function getStrLength(str){
  var len = 0;
  for(var i=0;i<str.length;i++){
    if (str.charCodeAt(i) > 255)
      len += 2;
    else
      len ++;
  }
  return len;
}
 
/**********************************************************************
*ranmin validate
***********************************************************************/
function notNull(s, thisInput) { //不能为空
  //去掉空格
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){
     
  }
  s=s.trim();
   
  if (s.length == 0){
    writeValidateInfo("不能为空或空格!", thisInput);
    return false;
  } 
  var s = Jtrim(s);  
  if ( s.length == 0){
    writeValidateInfo("不能为空或空格!", thisInput);
    return false;
  } 
  return true;
}
 
function isJine(s, thisInput) { //不能为空
   var a=/^[0-9]*(\.[0-9]{1,2})?$/;
   if(!a.test(s)){
     writeValidateInfo("有非法字符或者小数点位数超过两位", thisInput);
     return false;
  }else{
     return true;
   }
}
 
function isMobile(s, thisInput) { //是手机号码:必须以数字开头,除数字外,可含有“-” 
  //去掉空格
 
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){
     
  }
  s=s.trim();
   
  if(s.length ==0){
    return true;
  }
  var obj=new Array()
  obj[0]="13";
  obj[1]="14";
  obj[2]="15";
  obj[3]="18";
   
  if(s != null ){
    if(s.length != 11){
      writeValidateInfo('请输入合法的手机号码!', thisInput);
      return false;
    }
    var mob = 0;
    for ( var int = 0; int < obj.length; int++) {
      if(s.substring(0,2) == obj[int]){
        mob = mob+1;
      }
    }
    if(mob == 0){
      writeValidateInfo('请输入合法的手机号码!', thisInput);
      return false;
    }
  }
  var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/; 
  if (!patrn.exec(s)) {
    writeValidateInfo('请输入合法的手机号码!', thisInput);
    return false;
  }    
 
  return true;
}
 
function isPostalCode(s, thisInput) { //是邮政编码
  //去掉空格
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){
     
  }
  s=s.trim();
   
  if(s.length ==0){
    return true;
  }
     
  var patrn=/^[a-zA-Z0-9 ]{3,12}$/; 
  if (!patrn.exec(s)) {
    writeValidateInfo('请输入合法的邮政编码!', thisInput);
    return false;
  }
 
  return true;
} 
 
 
function isTel(s,thisInput) { //是电话普通电话、传真号码:可以“+”开头,除数字外,可含有“-” 
  //去掉空格
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){
     
  }
  s=s.trim();
   
  if(s.length ==0){
    return true;
  }
   
  var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/; 
  if (!patrn.exec(s)) {
    writeValidateInfo('请输入合法的电话号码!',thisInput);
    return false
  } 
 
  return true;
}
 
 
function isTelForFax(s,thisInput) { //是电话普通电话、传真号码:可以“+”开头,除数字外,可含有“-” 
  //去掉空格
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){
     
  }
  s=s.trim();
   
  if(s.length ==0){
    return true;
  }
  var patrn=/^(\d){3,4}[-](\d){7,8}$/; 
  if (!patrn.exec(s)) {
    writeValidateInfo('请输入合法的座机号码,例如:010-88888888!',thisInput);
    return false
  } 
 
  return true;
}
 
 
function isFax(s,thisInput) { //是电话普通电话、传真号码:可以“+”开头,除数字外,可含有“-” 
  //去掉空格
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){
     
  }
  s=s.trim();
   
  if(s.length ==0){
    return true;
  }
  var patrn=/^(\d){3,4}[-](\d){7,8}$/; 
  if (!patrn.exec(s)) {
    writeValidateInfo('请输入合法的传真号码,例如:010-88888888!',thisInput);
    return false
  } 
 
  return true;
}
 
function isChinese(s,thisInput) { //是中文
  //去掉空格
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){
     
  }
  s=s.trim();
   
  if(s.length ==0){
    return true;
  }
   
  var ret = ischinese(s);
  if(!ret){
    writeValidateInfo("请输入中文", thisInput);
    return ret;
  }
 
  return ret;
}
 
function notChinese(s,thisInput) { //不含中文
  //去掉空格
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){
     
  }
  s=s.trim();
   
  if(s.length ==0){
    return true;
  }
     
  var ret = ischinese(s);
   
  if(ret){
    writeValidateInfo("不能输入中文",thisInput);
    return false;
  }
 
  return true;
}
 
function isNum(s,thisInput) { //是数字 
  //去掉空格
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){
     
  }
  s=s.trim();
   
  if(s.length ==0){
    return true;
  }
   
  var digits = "0123456789";
  var i = 0;
  var sLength = s.length;
 
  while ((i < sLength)) {
    var c = s.charAt(i);
    if (digits.indexOf(c) == -1){
       
      writeValidateInfo ("请输入数字!",thisInput);   
      return false;
    }
    i++;
  }
  return true;
}
 
function isNumBigtoZero(s,thisInput) { //是数字 
  //去掉空格
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){
     
  }
  s=s.trim();
   
  if(s.length ==0){
    return true;
  }
   
  var digits = "0123456789";
  var i = 0;
  var sLength = s.length;
 
  while ((i < sLength)) {
    var c = s.charAt(i);
    if (digits.indexOf(c) == -1){
       
      writeValidateInfo ("请输入数字!",thisInput);   
      return false;
    }
    i++;
  }
  try{
    if(thisInput.value<=0){
      writeValidateInfo ("输入数值必须大于零!",thisInput);
      return false;
    }
  }catch(e){
     
  }
  return true;
}
function isEmail(s,thisInput) { //是电子邮件
  //去掉空格
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){
     
  }
  s=s.trim();
   
  if(s.length ==0){
    return true;
  }
 
  if (s.length > 100) {
    writeValidateInfo("email地址长度不能超过100位!",thisInput);
    return false;
  }
 
  var regu = /^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*[0-9a-zA-Z]+))@([a-zA-Z0-9-]+[.])+([a-zA-Z]{2}|net|NET|com|COM|gov|GOV|mil|MIL|org|ORG|edu|EDU|int|INT)$/;
 
  if (regu.exec(s)) {   
    return true;
  } else {
    writeValidateInfo ("请输入有效合法的E-mail地址 !",thisInput);
    return false;
  }
}
 
function isIP() { //是IP
     
  var patrn=/^[0-9.]{1,20}$/; 
  if (!patrn.exec(s)){
    writeValidateInfo('请输入IP值!',thisInput);
    return false
  } 
  return true;
}
 
 
/**********************************************************************
*Venus Web JavaScript Code:HTC 校验notNull
***********************************************************************/
function notNullWithoutTrim(s,thisInput) { //是""
  //去掉空格
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){
     
  }
  s=s.trim();
   
  if ( s.length == 0){
    writeValidateInfo('请输入,该项不能为空!',thisInput);
    return false;
  } 
  return true;
}
 
function isInteger(str,thisInput) { //是整数
  //去掉空格
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){
     
  }
  str=str.trim();
   
  if(str.length ==0){
    return true;
  }
   
  var reg = "0123456789";
  for (var i=0;i<str.length;i++){
    var m = str.charAt(i);
    if (reg.indexOf(m) == -1) {
      writeValidateInfo('请输入整数!',thisInput);
      return false;
    }
  }
  return true;
}
function isNormalStrOnWeb(s,thisInput) { //是普通字符(非html标记)
  if (s.substring(0,1) == "<" || s.substring(0,1) == "\>" || s.substring(0,1) == " "){
      writeValidateInfo("焦点处不能以<或\>或空格开头",thisInput);
      return false;
  }
 
  if (!HoldCode(s)){
    writeValidateInfo("焦点处不能输入全角\"·\"/\"—\"/\"——\"字符",thisInput);
    return false;
  }
  if (s.trim().length > 0){
    if (s.indexOf("\"") > -1){
      writeValidateInfo("焦点处不能输入双引号!!",thisInput);
      return false;
    }
    if (s.indexOf("\'") > -1){
      writeValidateInfo("焦点处不能输入单引号",thisInput);
      return false;
    }
    if (s.indexOf("\\") > -1){
      writeValidateInfo("焦点处不能输入 '\\' ",thisInput);
      return false;
    }
  }
  return true;
}
 
 
 
 
//基本函数列表
function Jtrim(str) { //去空隔函数
  var i = 0;
  var len = str.length;
  if ( str == "" ) return( str );
  var j = len -1;
  var flagbegin = true;
  var flagend = true;
  while ( flagbegin == true && i< len) {
    if ( str.charAt(i) == " " ) {
      i=i+1;
      flagbegin=true;
    } else {
      flagbegin=false;
    }
  }
 
  while (flagend== true && j>=0) {
    if (str.charAt(j)==" ") {
      j=j-1;
      flagend=true;
    } else {
      flagend=false;
    }
  }
 
  if ( i > j ) 
    return ("");
 
  var trimstr = str.substring(i,j+1);
  return trimstr;
}
 
function isNumber(s) { //数字判断函数
  s=s.trim();
  if(s.length ==0){
    return true;
  }
   
  var digits = "0123456789";
  var i = 0;
  var sLength = s.length;
   
  while ((i < sLength)) {
    var c = s.charAt(i);
    if (digits.indexOf(c) == -1) {
      return false;    
    }
    i++;
  }
  return true;
}
 
function ischinese(s) { //判断是否中文函数
  var ret=true;
  for(var i=0;i<s.length;i++)
    ret=ret && (s.charCodeAt(i)>=10000);
  return ret;
}
 
/**********************************************************************
*Venus Web JavaScript Code:HTC 表单通用检验(完善中)
***********************************************************************/
function HoldCode(str){
  for(var i=0;i<str.length;i++){
    if (str.charCodeAt(i) == 8212 || str.charCodeAt(i) == 183){
      return false;
    }
  }
  return true;
}
 
 
function validateForm(current_form) {
  for (var i=0;i<current_form.length;i++){
    if (current_form[i].type =="text" || current_form[i].type == "radio"){
      if (current_form[i].value.substring(0,1) == "<" || current_form[i].value.substring(0,1) == "\>" || current_form[i].value.substring(0,1) == " "){
          alert("焦点处不能以<或\>或空格开头");
          current_form[i].focus();
          current_form[i].select();
          return false;
      }
 
      if (getStrLength(current_form[i].value) > current_form[i].maxLength){
          alert("焦点处输入长度超长\n请确保输入长度在" +current_form[i].maxLength+"以内");
          current_form[i].focus();
          current_form[i].select();
          return false;
      }
      if (!HoldCode(current_form[i].value)){
        alert("焦点处不能输入全角\"·\"/\"—\"/\"——\"字符");
        current_form[i].focus();
        current_form[i].select();
        return false;
      }
      if (!is_empty(current_form[i].value)){
        if (current_form[i].name == "scriptDefine"){
          return true;
        }
        if (current_form[i].value.indexOf("\"") > -1){
          alert("焦点处不能输入双引号");
          current_form[i].focus();
          current_form[i].select();
          return false;
        }
      }
    }
  }
  return true;
}
 
   
function checkNumber(s, inputName) {
  try{
    //去掉空格
    try{
      thisInput.value=thisInput.value.trim();
    }catch(e){
       
    }
    s=s.trim();
     
    if(s.length ==0){
      return true;
    }
     
    var thisObj = event.srcElement;
    var maxLength = thisObj.integerDigits;
    var scale = thisObj.decimalDigits;
    return checkNumberImpl(s, maxLength, scale);
  }catch(e){
  }
}
 
function checkNumberImpl(s, maxLength, scale) { //校验运行里程,小数,整数部分最多为10-2
  if(s == "") {
    return true;
  }
  if(scale == undefined) {
    scale = 0;
  }
  if(maxLength == undefined) {
    maxLength = 38;
  }
  if(!isFloatNumber(s)) {
    return false;
  }
  if(s.indexOf(".") >0) {
    if(s.indexOf(".") <= maxLength && (Math.round(s*(pow(10,scale)))<(pow(10,(maxLength + scale))))) {
      return true;
    } else {
      alert("整数部分最大为" + (maxLength - scale) + "位!");
      return false;
    }
  } else {
    if(s.length <= maxLength) {
      return true;
    } else {
      alert("整数部分最大为" + maxLength + "位!!");
      return false;
    }
  }
}
 
function isFloatNumber(s,inputName) { //判断是否
  //去掉空格
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){
     
  }
  s=s.trim();
   
  if(s.length ==0){
    return true;
  }
   
  var digits = "0123456789.";
  var i = 0;
  var sLength = s.trim().length;
   
  while ((i < sLength)) {
    var c = s.charAt(i);
    if (digits.indexOf(c) == -1){
      writeValidateInfo("请输入有效数字!", inputName);    
      return false;
    }
    i++;
  }
  if(s.indexOf(".") != s.lastIndexOf(".")) {
    alert("小数点不对,请输入有效数字!");
    return false;
  } else {
    return true;
  }
}
 
function isSearch(s,thisInput) { //不能输入非法字符
  if(s.length == 0 ) 
    return true;
  var patrn=/^[^`~!@#$%^&*()+=|\\\][\]\{\}:;'\,.<>/?]{1}[^`~!@$%^&()+=|\\\][\]\{\}:;'\,.<>?]{0,5000}$/; 
  var patrn2 = /[^\{\|\.\\,<>"'_}/]/;
  if (!patrn.exec(s) || !patrn2.exec(s)){
    writeValidateInfo('输入项中含非法字符,请重新输入!',thisInput);
    return false;  
  }
  return true ;
}
 
 
//===============================================================================================
/**
 * 验证数字(正整数或者包含小数的数字).
 */
function isNumeric(value, thisInput) {
  //去掉空格
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){
     
  }
  value=value.trim();
   
  if(value.length ==0){
    return true;
  }
   
  var reg = /^\d+(\.\d+)?$/;
 
  if (!reg.test(value)) {     
    writeValidateInfo ("请输入正整数或者小数!", thisInput);
    return false;
  }
 
  return true;
}
 
 
/**
 * 验证数字(正整数).
 */
function checkInt(value, thisInput) {
  //去掉空格
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){
     
  }
  value=value.trim();
   
  if(value.length ==0){
    return true;
  }
   
  var reg = /^[0-9]\d*$/;
 
  if (!reg.test(value)) {     
    writeValidateInfo ("请输入正整数!", thisInput);
    return false;
  }
 
  return true;
}
/**
 * 验证数字(整数位最大为10位,可以带小数)
 */
function validateNumericAndLength(value, thisInput) {
  //去掉空格
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){
     
  }
  value=value.trim();
   
  if(value.length ==0){
    return true;
  }
   
  var reg = /^\d{1,10}(\.\d+)?$/;
 
  if (!reg.test(value)) {     
    writeValidateInfo ("请输入正整数或者小数(整数位只能有10位)!", thisInput);    
    return false;
  }
 
  return true;
}
 
/**
 * 验证数字(18,2)
 */
function isNum18p2(value, thisInput) {
  //去掉空格
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){}
  value=value.trim();
  if(value.length ==0){
    return true;
  }
  var reg = /^(-)?\d{1,16}(\.\d{1,2})?$/;
  if (!reg.test(value)) {     
    writeValidateInfo ("请输入数字(整数位最多16位,小数位最多2位)!", thisInput);   
    return false;
  }
  return true;
}
 
/**
 * 验证数字(18,4)
 */
function isNum18p4(value, thisInput) {
  //去掉空格
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){}
  value=value.trim();
  if(value.length ==0){
    return true;
  }
  var reg = /^(-)?\d{1,14}(\.\d{1,4})?$/;
  if (!reg.test(value)) {     
    writeValidateInfo ("请输入数字(整数位最多14位,小数位最多4位)!", thisInput);   
    return false;
  }
  return true;
}
 
 
/**
 * 验证数字(5,2)
 */
function isNum5p2(value, thisInput) {
  //去掉空格
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){}
  value=value.trim();
  if(value.length ==0){
    return true;
  }
  var reg = /^(-)?\d{1,3}(\.\d{1,2})?$/;
  if (!reg.test(value)) {     
    writeValidateInfo ("请输入数字(整数位最多3位,小数位最多2位)!", thisInput);    
    return false;
  }
  return true;
}
 
/**
 * 验证Email.
 */
function checkEmail(value, thisInput) {
  //去掉空格
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){
     
  }
  value=value.trim();
   
  if(value.length ==0){
    return true;
  }
   
  var reg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
 
  if (!reg.test(value)) {
    writeValidateInfo ("请输入正确的Email地址!", thisInput);
    return false;
  }
 
  return true;
}
 
/**
 * 验证身份证(15位或者18位身份证).
 */
function checkIdCard(value, thisInput) {
  //去掉空格
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){
     
  }
  value=value.trim();
   
  if(value.length ==0){
    return true;
  }
   
  var reg = /^\d{15}(\d{2}[A-Za-z0-9])?$/;
 
  if (!reg.test(value)) {
    writeValidateInfo ("请输入正确的身份证号码!", thisInput);
    return false;
  }
 
  return true;
}
 
/**
 * 验证邮政编码.
 */
function checkPostCode(value, thisInput) {
  //去掉空格
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){
     
  }
  value=value.trim();
   
  if(value.length ==0){
    return true;
  }
   
  var reg = /^[0-9]\d{5}$/;
 
  if (!reg.test(value)) {
    writeValidateInfo ("请输入正确的邮政编码!", thisInput);
    return false;
  }
 
  return true;
}
 
/**
 * 验证是否为中文字符.
 */
function checkChinese(value, thisInput) {
  //去掉空格
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){
     
  }
  value=value.trim();
   
  if(value.length ==0){
    return true;
  }
   
  var reg = /^[\u0391-\uFFE5]+$/;
 
  if (!reg.test(value)) {
    writeValidateInfo ("请输入中文字符!", thisInput);
    return false;
  }
 
  return true;
}
 
/**
 * 验证是否为非法字符.
 */
function checkInvalidString(value, thisInput) {
  var reg = /^[^`~!@#$%^&*()+=|\\\][\]\{\}:;'\,.<>/?]*$/;
 
  if (!reg.exec(value)) {
    writeValidateInfo ("输入的字符中包含特殊字符,请重新输入!", thisInput);
    return false;
  }
 
  return true;
}
 
function checkMoney(s, inputName) {
  //去掉空格
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){
     
  }
  s=s.trim();
   
  if(s.length ==0){
    return true;
  }
   
  if(s==""){
    writeValidateInfo("金额不能为空!", inputName);
    return false;
  }
  if(isFloatNumber(s,inputName)==false){
    writeValidateInfo("非法金额值!", inputName);
    return false;
  }
  var maxLength = 10;
  var scale =2;
  return checkNumberImpl(s, maxLength, scale,inputName);
}
 
/**
 * 校验分数是否在0-100
 */
function isAdultAge(str,thisInput) { //是整数
   //去掉空格
   try{
     thisInput.value=thisInput.value.trim();
   }catch(e){
     
   }
   str=str.trim();
   
   if(str.length ==0){
     return true;
   }
 
  if(parseInt(str)<0 || parseInt(str)>100){
    writeValidateInfo('请输入合法分数(0--100之间)!',thisInput);
    return false;
  }
  return true;
}
 
  /**
 * 6 级强度设置(数字、大写字母、小写字母、特殊字符、长度>=6、长度>=10)
 * 如果密码为空,返回 0
 */
function pwdStrength(pwd) {
  var sum = [0, 0, 0];
  for (var i=0; i<pwd.length; i++) {
    var c = pwd.charCodeAt(i);
    if (c >=48 && c <=57) //数字
      sum[0] = 1;
    else if (c >=65 && c <=90) //大写字母
      sum[1] = 1;
    else if (c >=97 && c <=122) //小写字母
      sum[1] = 1;
    else //特殊字符
      sum[2] = 1; 
  }
  var level = sum[0] + sum[1] + sum[2] ;
  if (pwd.length >= 8) level++;
  return level;
}
function isBiggerZero(value, thisInput) { //已经是数字,然后必须大于0
  if(thisInput.value<=0){
    writeValidateInfo('请输入一个大于零的数字!',thisInput);
    return false;
  }
  return true;
}
 
function isNonnegative(value, thisInput) { 
  if(thisInput.value<0){
    writeValidateInfo('请输入一个非负的数字!',thisInput);
    return false;
  }
  return true;
}
 
/**
 * 验证数字(20,6)
 */
function isNum20p6(value, thisInput) {
  //去掉空格
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){}
  value=value.trim();
  if(value.length ==0){
    return true;
  }
 
  var reg = /^(-)?\d{1,14}(\.\d{1,6})?$/;
  if (!reg.test(value)) {     
    writeValidateInfo ("请输入数字(整数位最多14位,小数位最多6位)!", thisInput);   
    return false;
  }
  return isBiggerZero(value, thisInput);
}
 
/**
 * 验证数字(18,6)
 */
function isNum18p6(value, thisInput) {
  //去掉空格
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){}
  value=value.trim();
  if(value.length ==0){
    return true;
  }
 
  var reg = /^(-)?\d{1,12}(\.\d{1,6})?$/;
  if (!reg.test(value)) {     
    writeValidateInfo ("请输入数字(整数位最多12位,小数位最多6位)!", thisInput);   
    return false;
  }
  return isBiggerZero(value, thisInput);
}
 
function isNonnegative20p6(value, thisInput) {
  //去掉空格
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){}
  value=value.trim();
  if(value.length ==0){
    return true;
  }
   
 
  var reg = /^(-)?\d{1,14}(\.\d{1,6})?$/;
  if (!reg.test(value)) {     
    writeValidateInfo ("请输入数字(整数位最多14位,小数位最多6位)!", thisInput);   
    return false;
  }
  return isNonnegative(value, thisInput);
}
 
/**
 * 验证数字(20,4)
 */
function isNum20p4(value, thisInput) {
  //去掉空格
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){}
  value=value.trim();
  if(value.length ==0){
    return true;
  }
 
  var reg = /^(-)?\d{1,16}(\.\d{1,4})?$/;
  if (!reg.test(value)) {     
    writeValidateInfo ("请输入数字(整数位最多16位,小数位最多4位)!", thisInput);   
    return false;
  }
  return isBiggerZero(value, thisInput);
}
 
/**
 * 供应商输入的单批次保证金金额只能是正整数并且只能精确到百位
 */
function isDPCBZJ(value, thisInput) {
  //去掉空格
  try{
    thisInput.value=thisInput.value.trim();
  }catch(e){
     
  }
  value=value.trim();
   
  if(value.length ==0){
    return true;
  }
   
  var reg = /^[1-9]\d*00$/;
 
  if (!reg.test(value)) {     
    writeValidateInfo ("请输入正确的保证金金额!", thisInput);
    return false;
  }
 
  return true;
}
 
//报表招标年度起始年度不能大于终止年度的判断
function validateYear(startYear,endYear,flag) {
  if(startYear > endYear){
    if(flag==1){
      alert("起始月份不能大于终止月份");
       return false;
     }else{
      alert("招标起始年度不能大于终止年度");
      return false;
     }
  }
  return true;
}

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
在JavaScript的jQuery库中操作AJAX的方法讲解
Aug 15 Javascript
Bootstrap所支持的表单控件实例详解
May 16 Javascript
jquery判断input值不为空的方法
Jun 05 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
Jun 21 Javascript
jQuery实现表格文本框淡入更改值后淡出效果
Sep 27 Javascript
Javascript使用SWFUpload进行多文件上传
Nov 16 Javascript
AngularJS实现DOM元素的显示与隐藏功能
Nov 22 Javascript
input输入密码变黑点密文的实现方法
Jan 09 Javascript
JavaScript使用简单正则表达式的数据验证功能示例
Jan 13 Javascript
使用ef6创建oracle数据库的实体模型遇到的问题及解决方案
Nov 09 Javascript
js中apply和Math.max()函数的问题及区别介绍
Mar 27 Javascript
jquery.validate自定义验证用法实例分析【成功提示与择要提示】
Jun 06 jQuery
在JavaScript中对HTML进行反转义详解
May 18 #Javascript
深入理解JavaScript中的浮点数
May 18 #Javascript
Node.js返回JSONP详解
May 18 #Javascript
noty ? jQuery通知插件全面解析
May 18 #Javascript
Avalon中文长字符截取、关键字符隐藏、自定义过滤器
May 18 #Javascript
jQuery实现图片向左向右切换效果的简单实例
May 18 #Javascript
JavaScript 基础函数_深入剖析变量和作用域
May 18 #Javascript
You might like
PHP脚本的10个技巧(6)
2006/10/09 PHP
PHP数组传递是值传递而非引用传递概念纠正
2013/01/31 PHP
Laravel学习笔记之Artisan命令生成自定义模板的方法
2018/11/22 PHP
laravel实现一个上传图片的接口,并建立软链接,访问图片的方法
2019/10/12 PHP
PHP 实现缩略图
2021/03/09 PHP
超级强大的表单验证
2006/06/26 Javascript
两个Javascript小tip资料
2010/11/23 Javascript
推荐17个优美新鲜的jQuery的工具提示插件
2012/09/14 Javascript
THREE.JS入门教程(2)着色器-上
2013/01/24 Javascript
js实现在页面上弹出蒙板技巧简单实用
2013/04/16 Javascript
一个字符串反转函数可实现字符串倒序
2014/09/15 Javascript
JavaScript实现可拖拽的拖动层Div实例
2015/08/05 Javascript
JavaScript测试工具之Karma-Jasmine的安装和使用详解
2015/12/03 Javascript
VUEJS实战之修复错误并且美化时间(2)
2016/06/13 Javascript
jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)
2016/06/28 Javascript
vue中配置mint-ui报css错误问题的解决方法
2017/10/11 Javascript
解决百度Echarts图表坐标轴越界的方法
2018/10/17 Javascript
深入浅析Node.js 事件循环、定时器和process.nextTick()
2018/10/22 Javascript
vue学习笔记之slot插槽用法实例分析
2020/02/29 Javascript
JS highcharts动态柱状图原理及实现
2020/10/16 Javascript
[17:13]DOTA2 HEROS教学视频教你分分钟做大人-斯拉克
2014/06/13 DOTA
[15:07]lgd_OG_m2_BP
2019/09/10 DOTA
Python中的函数式编程:不可变的数据结构
2018/10/08 Python
Python Numpy库datetime类型的处理详解
2019/07/13 Python
python实现发送form-data数据的方法详解
2019/09/27 Python
python利用xlsxwriter模块 操作 Excel
2020/10/14 Python
Python爬取网站图片并保存的实现示例
2021/02/26 Python
CSS3 特效范例整理
2011/08/22 HTML / CSS
Stutterheim瑞典:瑞典高级外套时装品牌
2019/06/24 全球购物
什么是岗位职责
2013/11/12 职场文书
质量标语大全
2014/06/12 职场文书
车间主任岗位职责
2015/02/03 职场文书
Go语言 go程释放操作(退出/销毁)
2021/04/30 Golang
VUE之图片Base64编码使用ElementUI组件上传
2022/04/09 Vue.js
Windows和Linux上部署Golang并运行程序
2022/04/22 Servers
使用pd.merge表连接出现多余行的问题解决
2022/06/16 Python