1. 程式人生 > >js的校驗

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),//身份證日期時間戳date
            now_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][email protected]([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("郵政編碼格式有誤!")
}