js的校验
1、判斷是否為數字(整數、小數)
//使用isNaN()函數 //isNaN()的缺點就在于 null、空格以及空串會被按照0來處理 //isNaN: Not a Number function isRealNum(val){// isNaN()函數 把空串 空格 以及NUll 按照0來處理 所以先去除if(val === "" || val ==null){return false;}if(!isNaN(val)){return true;}else{return false;} } function isNumber(val){var regPos = /^\d+(\.\d+)?$/; //非負浮點數var regNeg = /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/; //負浮點數if(regPos.test(val) || regNeg.test(val)){return true;}else{return false;}} //小數 var n=3.143423423; alert(n.toString().split(".")[1].length);2、金額
function changeMoneyToChinese(money){var cnNums = new Array("零","壹","貳","叁","肆","伍","陸","柒","捌","玖"); //漢字的數字var cnIntRadice = new Array("","拾","佰","仟"); //基本單位var cnIntUnits = new Array("","萬","億","兆"); //對應整數部分擴展單位var cnDecUnits = new Array("角","分","毫","厘"); //對應小數部分單位//var cnInteger = "整"; //整數金額時后面跟的字符var cnIntLast = "元"; //整型完以后的單位var maxNum = 999999999999999.9999; //最大處理的數字var IntegerNum; //金額整數部分var DecimalNum; //金額小數部分var ChineseStr=""; //輸出的中文金額字符串var parts; //分離金額后用的數組,預定義if( money == "" ){return "";}money = parseFloat(money);if( money >= maxNum ){$.alert('超出最大處理數字');return "";}if( money == 0 ){//ChineseStr = cnNums[0]+cnIntLast+cnInteger;ChineseStr = cnNums[0]+cnIntLast//document.getElementById("show").value=ChineseStr;return ChineseStr;}money = money.toString(); //轉換為字符串if( money.indexOf(".") == -1 ){IntegerNum = money;DecimalNum = '';}else{parts = money.split(".");IntegerNum = parts[0];DecimalNum = parts[1].substr(0,4);}if( parseInt(IntegerNum,10) > 0 ){//獲取整型部分轉換zeroCount = 0;IntLen = IntegerNum.length;for( i=0;i<IntLen;i++ ){n = IntegerNum.substr(i,1);p = IntLen - i - 1;q = p / 4;m = p % 4;if( n == "0" ){zeroCount++;}else{if( zeroCount > 0 ){ChineseStr += cnNums[0];}zeroCount = 0; //歸零ChineseStr += cnNums[parseInt(n)]+cnIntRadice[m];}if( m==0 && zeroCount<4 ){ChineseStr += cnIntUnits[q];}}ChineseStr += cnIntLast;//整型部分處理完畢}if( DecimalNum!= '' ){//小數部分decLen = DecimalNum.length;for( i=0; i<decLen; i++ ){n = DecimalNum.substr(i,1);if( n != '0' ){ChineseStr += cnNums[Number(n)]+cnDecUnits[i];}}}if( ChineseStr == '' ){//ChineseStr += cnNums[0]+cnIntLast+cnInteger;ChineseStr += cnNums[0]+cnIntLast;}/* else if( DecimalNum == '' ){ChineseStr += cnInteger;ChineseStr += cnInteger;} */return ChineseStr;}3、身份證
function testid(id) {// 1 "驗證通過!", 0 //校驗不通過var format = /^(([1][1-5])|([2][1-3])|([3][1-7])|([4][1-6])|([5][0-4])|([6][1-5])|([7][1])|([8][1-2]))\d{4}(([1][9]\d{2})|([2]\d{3}))(([0][1-9])|([1][0-2]))(([0][1-9])|([1-2][0-9])|([3][0-1]))\d{3}[0-9xX]$/;//號碼規則校驗if(!format.test(id)){return {'status':0,'msg':'身份證號碼不合規'};}//區位碼校驗//出生年月日校驗 前正則限制起始年份為1900;var year = id.substr(6,4),//身份證年month = id.substr(10,2),//身份證月date = id.substr(12,2),//身份證日time = Date.parse(month+'-'+date+'-'+year),//身份證日期時間戳datenow_time = Date.parse(new Date()),//當前時間戳dates = (new Date(year,month,0)).getDate();//身份證當月天數if(time>now_time||date>dates){return {'status':0,'msg':'出生日期不合規'}}//校驗碼判斷var c = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2); //系數var b = new Array('1','0','X','9','8','7','6','5','4','3','2'); //校驗碼對照表var id_array = id.split("");var sum = 0;for(var k=0;k<17;k++){sum+=parseInt(id_array[k])*parseInt(c[k]);}if(id_array[17].toUpperCase() != b[sum%11].toUpperCase()){return {'status':0,'msg':'身份證校驗碼不合規'}}return {'status':1,'msg':'校驗通過'} }5、是否必錄
//校驗表單必錄,每個必錄的表單需要增加一個屬性required='true'6、郵箱
var reg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/; if(!reg.test(Email)){alert("電子郵箱格式有誤!"); }7、手機號碼
var reg=/^[1][3,4,5,7,8][0-9]{9}$/; if(!reg.test(PhoneorTel)){ alert("手機號碼格式有誤!你確定要繼續嗎?");}8、郵編
var reg= /^[1-9][0-9]{5}$/; if(!reg.test(PostCode)){ alert("郵政編碼格式有誤!") }總結
- 上一篇: HBae找不到协处理器导致RegionS
- 下一篇: Hadoop Balancer运行速度优