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 setTimeout和setInterval 的区别
Dec 08 Javascript
jquery调用asp.net 页面后台的实现代码
Apr 27 Javascript
JS 毫秒转时间示例代码
Sep 22 Javascript
jQuery事件用法实例汇总
Aug 29 Javascript
jQuery处理XML文件的几种方法
Jun 14 Javascript
基于JavaScript实现前端文件的断点续传
Oct 17 Javascript
JS实现页面跳转参数不丢失的方法
Nov 28 Javascript
Thinkphp5微信小程序获取用户信息接口的实例详解
Sep 26 Javascript
微信小程序CSS3动画下拉菜单效果
Nov 04 Javascript
layui 对table中的数据进行转义的实例
Sep 12 Javascript
Node.js API详解之 Error模块用法实例分析
May 14 Javascript
Vue实现下拉加载更多
May 09 Vue.js
在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
浅析PKI加密解密 OpenSSL
2013/07/01 PHP
带你了解PHP7 性能翻倍的关键
2015/11/19 PHP
PHP版本的选择5.2.17 5.3.27 5.3.28 5.4 5.5兼容性问题分析
2016/04/04 PHP
thinkPHP中_initialize方法实例分析
2016/12/05 PHP
Ajax+PHP实现的删除数据功能示例
2019/02/12 PHP
Laravel框架实现抢红包功能示例
2019/10/31 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
2020/05/02 PHP
jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
2010/10/15 Javascript
多个js与css文件的合并方法详细说明
2012/12/26 Javascript
form表单action提交的js部分与html部分
2014/01/07 Javascript
bootstrap table 服务器端分页例子分享
2015/02/10 Javascript
javascript实现简单的进度条
2015/07/02 Javascript
BootStrap栅格系统、表单样式与按钮样式源码解析
2017/01/20 Javascript
jQuery源码分析之sizzle选择器详解
2017/02/13 Javascript
微信小程序实现根据字母选择城市功能
2017/08/16 Javascript
使用SVG基本操作API的实例讲解
2017/09/14 Javascript
nodejs 日志模块winston的使用方法
2018/05/02 NodeJs
@angular前端项目代码优化之构建Api Tree的方法
2018/12/24 Javascript
[01:14:55]EG vs Spirit Supermajor 败者组 BO3 第三场 6.4
2018/06/05 DOTA
[01:01:41]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第二场 1月31日
2021/03/11 DOTA
简单文件操作python 修改文件指定行的方法
2013/05/15 Python
python使用urllib模块和pyquery实现阿里巴巴排名查询
2014/01/16 Python
跟老齐学Python之编写类之二方法
2014/10/11 Python
Python pandas常用函数详解
2018/02/07 Python
Python线程threading模块用法详解
2020/02/26 Python
Python多线程多进程实例对比解析
2020/03/12 Python
pycharm的python_stubs问题
2020/04/08 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
2020/06/04 Python
爱游人:Travelliker
2017/09/05 全球购物
Furla官网:意大利著名的皮革品牌
2019/08/06 全球购物
幼儿园春游活动方案
2014/01/19 职场文书
活动总结怎么写啊
2014/05/07 职场文书
走群众路线学习笔记
2014/11/06 职场文书
挂职锻炼个人总结
2015/03/05 职场文书
《莫泊桑拜师》教学反思
2016/02/22 职场文书