1. 程式人生 > >常用js驗證函式

常用js驗證函式

//數字檢測
function checkNumber(str) {
    if (str.Trim() == "") {
        return true;
    }
    var patrn = /^[0-9]+$/;
    return patrn.test(str.Trim());
}
//檢測價格
function checkPrice(str) {
    if (str.Trim() == "") {
        return true;
    }
    var patrn = /^\d{1,5}(\.(\d{1,2}))?$/;
    return patrn.test(str.Trim());
}

//身份證驗證嚴格校驗
function checkIdcard(idcard) {
    var Errors = new Array(
    "身份證驗證通過!",
    "身份證號碼位數不對!",
    "身份證號碼出生日期超出範圍或含有非法字元!",
    "身份證號碼校驗錯誤!",
    "身份證地區非法!"
    );
    var area = { 11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "內蒙古", 21: "遼寧", 22: "吉林", 23: "黑龍江", 31: "上海", 32: "江蘇", 33: "浙江", 34: "安徽", 35: "福建", 36: "江西", 37: "山東", 41: "河南", 42: "湖北", 43: "湖南", 44: "廣東", 45: "廣西", 46: "海南", 50: "重慶", 51: "四川", 52: "貴州", 53: "雲南", 54: "西藏", 61: "陝西", 62: "甘肅", 63: "青海", 64: "寧夏", 65: "新疆", 71: "臺灣", 81: "香港", 82: "澳門", 91: "國外" }


    var idcard, Y, JYM;
    var S, M;
    var idcard_array = new Array();
    idcard_array = idcard.split("");
    //地區檢驗
    if (area[parseInt(idcard.substr(0, 2))] == null) return Errors[4];
    //身份號碼位數及格式檢驗
    switch (idcard.length) {
        case 15:
            if ((parseInt(idcard.substr(6, 2)) + 1900) % 4 == 0 || ((parseInt(idcard.substr(6, 2)) + 1900) % 100 == 0 && (parseInt(idcard.substr(6, 2)) + 1900) % 4 == 0)) {
                ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/; //測試出生日期的合法性
            } else {
                ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/; //測試出生日期的合法性
            }
            if (ereg.test(idcard)) return Errors[0];
            else return Errors[2];
            break;
        case 18:
            //18位身份號碼檢測
            //出生日期的合法性檢查
            //閏年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))
            //平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
            if (parseInt(idcard.substr(6, 4)) % 4 == 0 || (parseInt(idcard.substr(6, 4)) % 100 == 0 && parseInt(idcard.substr(6, 4)) % 4 == 0)) {
                ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/; //閏年出生日期的合法性正則表示式
            } else {
                ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/; //平年出生日期的合法性正則表示式
            }
            if (ereg.test(idcard)) {//測試出生日期的合法性
                //計算校驗位
                S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7
                + (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9
                + (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10
                + (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5
                + (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8
                + (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4
                + (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2
                + parseInt(idcard_array[7]) * 1
                + parseInt(idcard_array[8]) * 6
                + parseInt(idcard_array[9]) * 3;
                Y = S % 11;
                M = "F";
                JYM = "10X98765432";
                M = JYM.substr(Y, 1); //判斷校驗位
                if (M == idcard_array[17]) return Errors[0]; //檢測ID的校驗位
                else return Errors[3];
            }
            else return Errors[2];
            break;
        default:
            return Errors[1];
            break;
    }
}
//聯絡電話(手機/電話皆可)驗證 1 - 座機 、 0 - 手機 、 其他 - 不區分
function checkPhone(str, isPhone) {
    if (str.Trim() == "") {
        return true;
    }
    var mobile = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
    var tel = /^(\d{3,4}-?)?\d{7,9}(-\d{3,6})?$/;
    if (str.startWith("1")) {
        return mobile.test(str.Trim());
    }
    else if (isPhone == 1) {
        return (tel.test(str.Trim()));
    }
    else if (isPhone == 0) {
        return mobile.test(str.Trim());
    }
    return (tel.test(str.Trim()) || mobile.test(str.Trim()));
}
//郵政編碼驗證
function checkZipCode(str) {
    if (str.Trim() == "") {
        return true;
    }
    var tel = /^[0-9]{6}$/;
    return tel.test(str.Trim());
}
//郵箱驗證
function checkEmail(str) {
    if (str.Trim() == "") {
        return true;
    }
    var reg = /^\w+((-\w+)|(\.\w+))*\@{1}\w+\.{1}\w{2,4}(\.{0,1}\w{2}){0,1}/ig;
    return reg.test(str.Trim());
}

//輸入判斷比較

function chkValueIn(chkObjId, chkValue) {
    if ($("#" + chkObjId).val().Trim() == chkValue ) {
        $("#" + chkObjId).val("");
    }
}

//輸出判斷比較
function chkValueOut(chkObjId, chkValue) {
    if ($("#" + chkObjId).val().Trim() == "") {
        $("#" + chkObjId).val(chkValue);
    }
}

//用於最大字數限制輸入框
        //contentId  內容輸入容器Id
        //maxId 剩餘字數顯示容器Id
        //maxlength 最大字數值
        function checkChar(contentId, maxId, maxlength) {
            var value = $("#" + contentId).val();
            var length = 0;
            for (var i = 0; i < value.length; i++) {
                var ch = value.charAt(i);
                if (isNormalChar(ch))
                    length += 1;
                else
                    length += 2;
            }

            if (length > maxlength) {
                var currentV = "";
                length = 0;
                for (var i = 0; i < value.length; i++) {
                    length++;
                    if (value.charCodeAt(i) > 127) {
                        length++;
                    }
                    if (length <= maxlength) {
                        currentV = $("#" + contentId).val().substring(0, i);
                    }
                    else {
                        break;
                    }
                }
                $("#" + contentId).val(currentV);
                $("#" + maxId).html("0");
            }
            else {
                var residual = parseInt((maxlength - length) / 2);
                $("#" + maxId).html(residual);
            }
        }
        function isNormalChar(ch) {
            if (ch.length > 1) {
                return false;
            }
            if (ch == "") {
                return true;
            }

            var pattern = /^([\\uFF66-\\uFF9F]|[\\u0000-\\u00FF])*$/gi;
            if (pattern.test(ch)) {
                return true;
            } else {
                return false;
            }
        }

相關推薦

常用js驗證函式

//數字檢測 function checkNumber(str) {     if (str.Trim() == "") {         return true;     }     var patrn = /^[0-9]+$/;     return patrn.te

【實用】常用JS驗證函式大全

[code language=js]/*********************************************************************** 常用JS驗證函式 * QQ:12165743* Email:[email prote

常用js驗證函式 (轉載)

//******************************************************************/**//**JavaScript Document* <p>タイトル: JS常用処理函式</p>* <p&g

常用js驗證方法封裝1

var check={ var check = { //是否為空 isNull: function (str) { if ($.trim(str).length == 0)re

javascript常用資料驗證函式

正則表示式日期驗證函式 function CheckDate(str){       //在JavaScript中,正則表示式只能使用"/"開頭和結束,不能使用雙引號        var Expression=/^((((1[6-9]|[2-9]\d)\d{2})(\/

js驗證函式

<script language="JavaScript" type="text/javascript">function submitUpdateInfo(){    if(document.getElementById("username").value=="

常用js驗證(待更新)

一些較為常用的js驗證 //是否為空校驗 function isEmpty(str) {  var lll = trim(str) ;  if (ll == null || ll.length == 0){   return true ;  } else {   retu

js常用的字串函式

1 substring:提取字串中介於兩個指定下標之間的字元。 語法 stringObject.substring(start,stop) 說明 substring() 方法返回的子串包括 start 處的字元,但不包括 stop 處的字元。 如果引數 start 與

js的正則自定義金額輸入驗證函式

名稱:正則驗證金額函式方法 描述:自定義函式驗證金額 作用:可驗證 90與90.00,及判斷是否是1個小數點。 js程式碼: function is_money(s) { var reg_sum = "^[0-9]+[\.][0-9]{0,3}$";

常用正則表示式大全,手機 電話 郵箱 身份證 最嚴格的驗證 IP地址 網址 日期等,一般前臺js驗證,來這裡就夠了

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

常用 JS 外掛】01 jQuery Validation 表單驗證外掛

表單驗證框架 jQuery Validation 前端表單驗證框架 頁面引用 <!-- jQuery Validation 1.14.0 --> <script src="/static/assets/plugins/jquery-valida

第六課:js常用物件和函式

  這節課講講js常用的物件和函式   //這課講js常用物件和函式 //判斷一個物件是否是陣列 // Array.isArray(); //開啟一個新頁面,其實是傳送一個請求 /**  * @Param url: 要開啟的頁面的連結(要傳送請

常用 JS 外掛】01 jQuery Valdation 表單驗證外掛

表單驗證框架 jQuery Validation 前端表單驗證框架 頁面引用 <!-- jQuery Validation 1.14.0 --> <script src="/static/assets/plugins/jquery-valida

100多個基礎常用JS函式和語法集合大全

網站特效離不開指令碼,javascript是最常用的指令碼語言,我們歸納一下常用的基礎函式和語法: 1.輸出語句:document.write(""); 2.JS中的註釋為//3.傳統的HTML文件順序是:document->html->(head,body)4.一個瀏覽器視窗中的DOM順序是:w

工作中常用到的JS驗證

Common.js // JavaScript Document // _ooOoo_ // o8888888o // 88" . "88 //

常用JS驗證—正則表示式

1。date日期var _reg = /^[0-9]{4}-(((0?[13578]|(10|12))-(0?[1-9]|[1-2][0-9]|3[0-1]))|(0?2-(0[1-9]|[1-2][

JS通用表單驗證函式

Check.js   JS函式檔案//////////////////////////////////////////////////////////////////////////////// /*  *--------------- 客戶端表單通用驗證CheckForm

常用js函式(不斷更新)

/** * 物件克隆 **/ cloneObj : function(obj){ var This = this; obj.Clone = function(){ var o

常用js函式封裝

//===============================Array==================================// /** * 陣列去重 */ Array.prototype.Unique = function () { re

JS驗證控件jQuery Validate

left pass mes 源碼 bsp targe 單標簽 pac get jQuery Validate 插件為表單提供了強大的驗證功能,讓客戶端表單驗證變得更簡單,同時提供了大量的定制選項,滿足應用程序各種需求。該插件捆綁了一套有用的驗證方法,包括 URL 和電子郵件