js普通校驗總結


//全角轉半角
//obj爲要轉換
 function ToCDB(obj) {
  
  //37  //39  //46 //8
  if(event.keyCode ==37 || event.keyCode ==39 || event.keyCode ==46  ||event.keyCode ==8  ){
   return;
  }
  var str = obj.value;
  var tmp = "";
  for (var i = 0; i < str.length; i++) {
   if (str.charCodeAt(i) > 65248 && str.charCodeAt(i) < 65375) {
    tmp += String.fromCharCode(str.charCodeAt(i) - 65248);
   } else {
    tmp += String.fromCharCode(str.charCodeAt(i));
   }
  }
  obj.value=tmp;
 }
//是否符合郵政編碼格式:6位數字
function isZipcode(value){
 var pattern = /^\d{6}$/;
 return pattern.test(value);
}
//是不是固定電話號碼
//1.單位電話區號首位必須以「0」 開頭。 2.單位電話分機號爲3-8位數字或爲空。
function isPhone(value) {
 var shortPattern = /^0\d{2,3}[-]{1}\d{7,8}$/;
 var longPattern = /^0\d{2,3}[-]{1}\d{7,8}[-]{1}\d{3,8}$/;
 return (shortPattern.test(value) || longPattern.test(value)) && !isSameNumbers(value);
}
//是不是移動電話
function isMobile(value) {
 var mobilePattern = /^[1]{1}\d{10}$/;
 return mobilePattern.test(value) && !isSameNumbers(value);
}
//判斷電話號碼中是否數字全重複
function isSameNumbers(value) {
 var numbers = value.replace(/\-/g, "");
 var index = 0;
 var count = 0;
 while ((index+1) < numbers.length) {
  count = count + Math.abs(numbers.charAt(index) - numbers.charAt(index + 1));
  if (count > 0) {
   break;
  }
  index = index + 1;
 }
 return count == 0 ? true : false;
} jquery

/**
 * 校驗客戶姓名:不含*、數字、字母、空格、產品名稱
 * @param name
 * @return true:格式正確;false:格式不正確
 * @author YAOFAN972
 */
function checkCustName(name){
    //客戶姓名生僻字用拼音錄入,容許輸入大寫字母A~Z
// var regx = /[A-Za-z0-9\*\s\uFF00-\uFFFF\u3000\uE000-\uF8FF×]+|暢行天下+|倍保安行+|金燦人生+|倍保如意+|倍保無憂+|得益人生+|樂逸人生+|樂翔人生+|安行無憂+|中國平安+|中國移動+|倍保如意\2010\+|先生+|小姐+|女士+/;
    var regx = /[a-z0-9\*\s\uFF00-\uFFFF\u3000\uE000-\uF8FF×]+|暢行天下+|倍保安行+|金燦人生+|倍保如意+|倍保無憂+|得益人生+|樂逸人生+|樂翔人生+|安行無憂+|鴻運如意+|鴻運安行+|馨逸人生+|康逸人生+|平安出行+|安益人生+|中國平安+|中國移動+|鴻運英才+|倍保如意\2010\+|先生+|小姐+|女士+/;
 return !regx.test(name);
}
/**
 * 統一規則:省+市+區+細址 總長度 不能超過100個字符。
 * @param provinceID,cityID,countryID,addressID
 * 省ID,市ID,區ID,細址ID,提示信息在細址後。
 * @return 校驗成功返回:true;校驗失敗返回:false
 * @author YAOFAN972
 * 爲了四項和五項能同時校驗,ex-zhuqimeng001於2011-10-31 對此修改。
**/
function checkAddress(){
    var args_len = arguments.length;  
    var args = arguments;
    if(args_len == 5){
    return  checkAddress5items(args[0],args[1],args[2],args[3],args[4]);
    }else if( args_len == 4){
    return checkAddress4items(args[0],args[1],args[2],args[3]);
    }else {
    return false;
    }
  }
function checkAddress5items(provinceID,cityID,countryID,streetId,addressID){ 
   var provinceLength=0;
   var cityLength=0;
   var countyLength=0;
   var streetLength = 0;
       
   var provinceCombo = document.getElementById(provinceID);
   var province = provinceCombo.options[provinceCombo.selectedIndex].text;
   if(provinceCombo.options[provinceCombo.selectedIndex].value!=""){
        provinceLength=paGetLengthWithoutTrim(province);
   }
  
   var cityCombo = document.getElementById(cityID);
   var city = cityCombo.options[cityCombo.selectedIndex].text;
  
   if(cityCombo.options[cityCombo.selectedIndex].value!=""){
        cityLength=paGetLengthWithoutTrim(city);
   }
   var countryCombo = document.getElementById(countryID);
   var county = countryCombo.options[countryCombo.selectedIndex].text;
         if(countryCombo.options[countryCombo.selectedIndex].value!=""){
        countyLength=paGetLengthWithoutTrim(county);
   }
   var streetCombo = document.getElementById(streetId);
   var street = streetCombo.options[streetCombo.selectedIndex].text;
   if(streetCombo.options[streetCombo.selectedIndex].value!=""){
    streetLength=paGetLengthWithoutTrim(street);
   }
   //alert (provinceLength +"+"+ cityLength +"+"+ countyLength );
   var length = provinceLength + cityLength + countyLength + streetLength + paGetLengthWithoutTrim($("#"+addressID).val());
   //alert(length);
   if(length > 100){
      showMsg(addressID,"聯繫地址省市區鄉鎮街道加細址長度不能超過100個字符。");
      return  false;
   }else{
      hintMsg(addressID);
      return true;
   }
} 正則表達式

function checkAddress4items(provinceID,cityID,countryID,addressID){
    var provinceLength=0;
    var cityLength=0;
    var countyLength=0;  
    var provinceCombo = document.getElementById(provinceID);
    var province = provinceCombo.options[provinceCombo.selectedIndex].text;
    if(provinceCombo.options[provinceCombo.selectedIndex].value!=""){
         provinceLength=paGetLengthWithoutTrim(province);
    }
    var cityCombo = document.getElementById(cityID);
    var city = cityCombo.options[cityCombo.selectedIndex].text;
   
    if(cityCombo.options[cityCombo.selectedIndex].value!=""){
         cityLength=paGetLengthWithoutTrim(city);
    }
    var countryCombo = document.getElementById(countryID);
    var county = countryCombo.options[countryCombo.selectedIndex].text;
          if(countryCombo.options[countryCombo.selectedIndex].value!=""){
         countyLength=paGetLengthWithoutTrim(county);
    }
    //alert (provinceLength +"+"+ cityLength +"+"+ countyLength );
    var length = provinceLength + cityLength + countyLength + paGetLengthWithoutTrim($("#"+addressID).val());
    //alert(length);
    if(length > 100){
       showMsg(addressID,"聯繫地址省市區加細址長度不能超過100個字符。");
       return  false;
    }else{
       hintMsg(addressID);
       return true;
    }
 } 函數


 
/**
 * 執行test正則
 * @param val 值
 * @param reg 正則表達式
 * @return
 */
function paTestReg(val, reg) {
 return reg.test(val);
}
/**
 * 獲得長度,清空2端空格等(漢字爲2個字節長度)
 * @param val 值
 * @return 返回長度
 */
function paGetLength(val) {
 if (!val) {
  return 0;
 }
 val = paTrim(val);
 if (val.length <= 0) {
  return 0;
 }
 return val.replace(/[^\x00-\xff]/g, "**").length;
}
/**
 * 獲得長度(漢字爲2個字節長度)
 * @param val 值
 * @return 返回長度
 */
function paGetLengthWithoutTrim(val) {
 if (!val) {
  return 0;
 }
 if (val.length <= 0) {
  return 0;
 }
 return val.replace(/[^\x00-\xff]/g, "**").length;
}
/**
 * 清空2端空格等
 * @param val 值
 * @return
 */
function paTrim(val) {
 if (!val) {
  return val;
 }
 return val.replace(/(^\s*)|(\s*$)/g, "");
}
/**
 * 判斷是否爲空,清空2端空格等
 * @param val 值
 * @return
 */
function paEmpty(val) {
 if (!val) {
  return true;
 }
 return paTrim(val).length > 0 ? false : true;
}
/**
 * 判斷是否閏年
 * @param year
 * @return true:閏年;false:非閏年
 */
function paLeapYear(year) {
 return ((0 == year % 4) && (0 != (year % 100))) || (0 == year % 400) ? true : false;
}
/**
 * 獲得XX年XX月的最大天數
 * @param year 年
 * @param month 月
 * @return
 */
function paGetMaxDay(year, month) {
 var daysArray = new Array(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
 if (month != 2) {
  return daysArray[month - 1];
 }
 return paLeapYear(year) ? 29 : 28;
}
/**
 * 左補零
 * @param val 值
 * @param len 但願補零後的長度
 * @return
 */
function paLeftFillZero(val, len) {
 var ll = val.length;
 if (ll >= len) {
  return val;
 }
 var num = len - ll;
 for (var i = 0; i < num; i++) {
  val = "0" + val;
 }
 return val;
}
/**
 * 判斷是否數字
 * @param val 值
 * @return
 */
function paNumeric(val) {
 if (val != "" && val !="0") {
  var reg = /^[1-9]{1}[\d]*$/;
  return paTestReg(val, reg);
 }
 return true;
} 編碼

/**
 * 檢查時間大小
 * @param starttime
 * @param endtime
 * @returns {Boolean}
 */
function checkTimeBefore(starttime,endtime) {
 //var starttime = $("#starttime").val();
 //var endtime = $("#endtime").val();
 var istart = parseInt(starttime.split(":")[0]) * 100
   + parseInt(starttime.split(":")[1]);
 var iend = parseInt(endtime.split(":")[0]) * 100
   + parseInt(endtime.split(":")[1]);
 if (iend < istart) {
  return false;
 } else {
  return true;
 } 
} spa

/**
 * 判斷是時間格式 24小時制時間
 */
function pa24Time(val) {
 var reg = /^([01][0-9]|2[0-3])\:[0-5][0-9]$/
 return paTestReg(val, reg);
} .net

/**
 * 判斷是否漢字
 * @param val 值
 * @return
 */
function paChinese(val) {
 var re = new RegExp("^[\\u4e00-\\u9fa5]+$", "");
 return re.test(val);
}
/**
 * 判斷是否半角字符
 * @param val 值
 * @return
 */
function paHalfCharacter(val) {
 var re = new RegExp("^[\x00-\xff]+$", "");
 return re.test(val);
}
/**
 * 判斷是否字母
 * @param val
 * @return
 */
function paEnglish(val) {
 var re = new RegExp("^[a-zA-Z]+$", "");
 return re.test(val);
}
/**
 * 日期校驗
 * @param obj
 * @return
 */
function f_check_date(obj) {
 var date = Trim(obj.value);
 if (date.length == 0) {
  return true;
 }
 var dtype = obj.dataType;
 if (dtype.indexOf("(") == -1) {
  f_alert(obj, "\u8bf7\u6307\u5b9a\u65e5\u671f\u683c\u5f0f");
  return false;
 }
 var format = dtype.substring(dtype.indexOf("(") + 1, dtype.indexOf(")"));    //日期格式
 var year, month, day, datePat, matchArray;
 if (/^(y{4})(-|\/)(M{1,2})\2(d{1,2})$/.test(format)) {
  datePat = /^(\d{4})(-|\/)(\d{1,2})\2(\d{1,2})(\s((0[0-9])|([2][0-3])|[1][0-9])\:([0-5][0-9]))?$/;
 } else {
  if (/^(y{4})(年)(M{1,2})(月)(d{1,2})(日)$/.test(format)) {
   datePat = /^(\d{4})年(\d{1,2})月(\d{1,2})日(\s((0[0-9])|([2][0-3])|[1][0-9])\:([0-5][0-9]))?$/;
  } else {
   if (format == "yyyyMMdd") {
    datePat = /^(\d{4})(\d{2})(\d{2})(\s((0[0-9])|([2][0-3])|[1][0-9])\:([0-5][0-9]))?$/;
   } else {
    //f_alert(obj, "\u65e5\u671f\u683c\u5f0f\u4e0d\u5bf9");
    //return false;
   }
  }
 }
 matchArray = date.match(datePat);
 if (matchArray == null) {
  f_alert(obj, "\u975E\u6709\u6548\u65E5\u671F\u683C\u5F0F");
  return false;
 }
 if (/^(y{4})(-|\/)(M{1,2})\2(d{1,2})$/.test(format)) {
  year = matchArray[1];
  month = matchArray[3];
  day = matchArray[4];
 } else {
  year = matchArray[1];
  month = matchArray[2];
  day = matchArray[3];
 }
 if (month < 1 || month > 12) {
  f_alert(obj, "\u6708\u4efd\u5e94\u8be5\u4e3a1\u523012\u7684\u6574\u6570");
  return false;
 }
 if (day < 1 || day > 31) {
  f_alert(obj, "\u6bcf\u4e2a\u6708\u7684\u5929\u6570\u5e94\u8be5\u4e3a1\u523031\u7684\u6574\u6570");
  return false;
 }
 if ((month == 4 || month == 6 || month == 9 || month == 11) && day == 31) {
  f_alert(obj, "\u8be5\u6708\u4e0d\u5b58\u572831\u53f7");
  return false;
 }
 if (month == 2) {
  var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
  if (day > 29) {
   f_alert(obj, "2\u6708\u6700\u591a\u670929\u5929");
   return false;
  }
  if ((day == 29) && (!isleap)) {
   f_alert(obj, "\u95f0\u5e742\u6708\u624d\u670929\u5929");
   return false;
  }
 }
 return true;
} code

/**
 * 日期校驗
 * @param obj
 * @return
 */
function isValidDate(obj) {
 var date = Trim(obj.value);
 if (date.length == 0) {
  return true;
 }
 var dtype = obj.dataType;
 if (dtype.indexOf("(") == -1) {
  return false;
 }
 var format = dtype.substring(dtype.indexOf("(") + 1, dtype.indexOf(")"));    //日期格式
 var year, month, day, datePat, matchArray;
 if (/^(y{4})(-|\/)(M{1,2})\2(d{1,2})$/.test(format)) {
  datePat = /^(\d{4})(-|\/)(\d{1,2})\2(\d{1,2})(\s((0[0-9])|([2][0-3])|[1][0-9])\:([0-5][0-9]))?$/;
 } else {
  if (/^(y{4})(年)(M{1,2})(月)(d{1,2})(日)$/.test(format)) {
   datePat = /^(\d{4})年(\d{1,2})月(\d{1,2})日(\s((0[0-9])|([2][0-3])|[1][0-9])\:([0-5][0-9]))?$/;
  } else {
   if (format == "yyyyMMdd") {
    datePat = /^(\d{4})(\d{2})(\d{2})(\s((0[0-9])|([2][0-3])|[1][0-9])\:([0-5][0-9]))?$/;
   } else {
    return false;
   }
  }
 }
 matchArray = date.match(datePat);
 if (matchArray == null) {
  return false;
 }
 if (/^(y{4})(-|\/)(M{1,2})\2(d{1,2})$/.test(format)) {
  year = matchArray[1];
  month = matchArray[3];
  day = matchArray[4];
 } else {
  year = matchArray[1];
  month = matchArray[2];
  day = matchArray[3];
 }
 if (month < 1 || month > 12) {
  return false;
 }
 if (day < 1 || day > 31) {
  return false;
 }
 if ((month == 4 || month == 6 || month == 9 || month == 11) && day == 31) {
  return false;
 }
 if (month == 2) {
  var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
  if (day > 29) {
   return false;
  }
  if ((day == 29) && (!isleap)) {
   return false;
  }
 }
 return true;
} orm

/*LTrim(string):去除左邊的空格*/
function LTrim(str) {
 var whitespace = new String(" \t\n\r");
 var s = new String(str);
 if (whitespace.indexOf(s.charAt(0)) != -1) {
  var j = 0, i = s.length;
  while (j < i && whitespace.indexOf(s.charAt(j)) != -1) {
   j++;
  }
  s = s.substring(j, i);
 }
 return s;
}
/*RTrim(string):去除右邊的空格*/
function RTrim(str) {
 var whitespace = new String(" \t\n\r");
 var s = new String(str);
 if (whitespace.indexOf(s.charAt(s.length - 1)) != -1) {
  var i = s.length - 1;
  while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1) {
   i--;
  }
  s = s.substring(0, i + 1);
 }
 return s;
}
/*Trim(string):去除字符串兩邊的空格*/
function Trim(str) {
 return RTrim(LTrim(str));
}
/* 彈出警告對話框,用戶點肯定後將光標置於出錯文本框上, 而且將原來輸入內容選中。*/
function f_alert(obj, alertInfo) {
 var caption = obj.getAttribute("msg");
 var type = obj.getAttribute("type");
 if (caption == null) {
  caption = "";
 }
 alert(caption + "\uff1a" + alertInfo + "\uff01");
 if (type != null) {
  if (type == "text" || type == "TEXT" || type == "textarea" || type == "TEXTAREA") {
   obj.select();
  }
 }
 if (isVisible(obj) && checkPrVis(obj)) {
  obj.focus();
 }
}
/*判斷當前對象是否可見*/
function isVisible(obj) {
 var visAtt, disAtt;
 try {
  disAtt = obj.style.display;
  visAtt = obj.style.visibility;
 }
 catch (e) {
 }
 if (disAtt == "none" || visAtt == "hidden") {
  return false;
 }
 return true;
}
/*判斷當前對象及其父對象是否可見*/
function checkPrVis(obj) {
 var pr = obj.parentNode;
 do {
  if (pr == undefined || pr == "undefined") {
   return true;
  } else {
   if (!isVisible(pr)) {
    return false;
   }
  }
 } while (pr = pr.parentNode);
 return true;
} 對象

/**
*使用jquery trim 函數
*@param id  用$("#id").val()得到值
*@return 返回去掉字符串起始和結尾的空格後的值
*/
function jqueryTrim(id){
 return $.trim($("#"+id).val())
}
/**
*使用jquery trim 函數去掉字符串起始和結尾的空格
*而後將去空格後的值設置回去
*@param id  用$("#id").val()得到值
*
*/
function jqueryTrimReset(id){
  $("#"+id).val($.trim($("#"+id).val()))
} ip

}

相關文章
相關標籤/搜索