js 各種驗證小總結

/******************************  常用的js判斷格式 *************************************/

// 判斷輸入是否是一個由 0-9 / A-Z / a-z 組成的字符串
function isalphanumber(str) {
    var result = str.match(/^[a-zA-Z0-9]+$/);
    if (result == null)
        return false;
    return true;
}
/******************************/
// 判斷輸入是否是一個數字--(數字包含小數)--
function isnumber(str) {
    return !isNaN(str);
}
//大於0 的數字
function isnumberDYO(str) {
    if (!isNaN(str)) {
        if (parseInt(str) > 0)
            return true;
        else
            return false;
    }
    else
        false;
}



// 判斷輸入是否是一個整數
function isint(str) {
    var result = str.match(/^(-|\+)?\d+$/);
    if (result == null) return false;
    return true;
}


// 判斷輸入是否是有效的長日期格式 - "YYYY-MM-DD HH:MM:SS" || "YYYY/MM/DD HH:MM:SS"
function isdatetime(str) {
    var result = str.match(/^(\d{4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2})$/);
    if (result == null) return false;
    var d = new Date(result[1], result[3] - 1, result[4], result[5], result[6]);
    return (d.getFullYear() == result[1] && (d.getMonth() + 1) == result[3] && d.getDate() == result[4] && d.getHours() == result[5] && d.getMinutes() == result[6]);
}

//判斷兩個日期大小 
function checkEndTime(startTime, endTime) {
    console.log(startTime);
    console.log(endTime);
    var start = new Date(startTime.replace("-", "/").replace("-", "/"));
    var end = new Date(endTime.replace("-", "/").replace("-", "/"));
    console.log(end < start);
    return end < start;
}

// 檢查是否爲 YYYY-MM-DD || YYYY/MM/DD 的日期格式
function isdate(str) {
    var result = str.match(/^(\d{4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
    if (result == null) return false;
    var d = new Date(result[1], result[3] - 1, result[4]);
    return (d.getFullYear() == result[1] && d.getMonth() + 1 == result[3] && d.getDate() == result[4]);
}


// 判斷輸入是否是有效的電子郵件
function isemail(str) {
    var result = str.match(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/);
    if (result == null) return false;
    return true;
}


// 去除字符串的首尾的空格
function trim(str) {
    return str.replace(/(^\s*)|(\s*$)/g, "");
}


// 返回字符串的實際長度, 一個漢字算2個長度
function strlen(str) {
    return str.replace(/[^\x00-\xff]/g, "**").length;
}


//匹配中國郵政編碼(6位)
function ispostcode(str) {
    var result = str.match(/[1-9]\d{5}(?!\d)/);
    if (result == null) return false;
    return true;
}
//匹配國內電話號碼(0511-4405222 或 021-87888822)
function istell(str) {
    var result = str.match(/\d{3}-\d{8}|\d{4}-\d{7}/);
    if (result == null) return false;
    return true;
}

//校驗是否爲(0-10000)的整數
function isint1(str) {
    var result = str.match(/^[0-9]$|^([1-9])([0-9]){0,3}$|^10000$/);
    if (result == null) return false;
    return true;
}


//匹配騰訊QQ號
function isqq(str) {
    var result = str.match(/[1-9][0-9]{4,}/);
    if (result == null) return false;
    return true;
}


//匹配身份證(15位或18位)
function isidcard(str) {
    var result = str.match(/\d{15}|\d{18}/);
    if (result == null) return false;
    return true;
}

function checkIDCard(str) {
    //身份證正則表達式(15位) 
    isIDCard1 = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
    //身份證正則表達式(18位)

    isIDCard2 = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;
    //驗證身份證,返回結果 

    return (isIDCard1.test(str) || isIDCard2.test(str));
}


//校驗文本是否爲空
function checknull(field, sval) {
    if (field.value == "") {
        alert("請填寫" + sval + "!");
        field.focus();
        return false;
    }
    return true;
}

//判斷爲空性
function IsTrem(str) {
    var name = $.trim(str)
    if (name == "")
        return false;
    else
        return true;
}
//判斷爲正整數
function IsZS(value) {
    if ((/^(\+|-)?\d+$/.test(value)) && value > 0) {
        return true;
    } else {
        return false;
    }
}
//屏蔽輸入字符
/***********************
調用方法:    
    在文本框中加上 onkeypress="return checkChar()"
*************************/
function checkChar() {
    var keycode = event.keyCode;
    if (!(keycode >= 48 && keycode <= 57)) {
        return false;
    }
}


(function ($) {
    $.fn.extend({
        fileTypeJudge: function (str) {
            return this.each(function () {
                var rightFileType;
                var fileType;
                var pojo;
                if (str == "photo") {
                    rightFileType = new Array("jpg", "bmp", "gif", "png", "jpeg");
                    pojo = "圖片";
                } else if (str == "package") {
                    rightFileType = new Array("jar", "six", "sisx", "apk", "jad");
                    pojo = "遊戲包";
                } else {
                    return;
                }
                var fileType = $(this).val().substring($(this).val().lastIndexOf(".") + 1);
                if (!in_array(fileType, rightFileType)) {
                    this.outerHTML += '';
                    this.value = "";
                    alert("只支持" + pojo + "文件上傳!");
                }
            })
        }
    })
})
function in_array(needle, haystack) {
    // 得到needle的類型  
    var type = typeof needle;
    if (type == 'string' || type == 'number') {
        for (var i in haystack) {
            if (haystack[i] == needle) {
                return true;
            }
        }
    }
    return false;
}
//使用方法
//$(":file").bind("change", function () {
//    $(this).fileTypeJudge("package");
//})


function JudageImage(filepath) {
    //var filepath=$("input[name='myFile']").val();
    var extStart = filepath.lastIndexOf(".");
    var ext = filepath.substring(extStart, filepath.length).toUpperCase();
    if (ext != ".BMP" && ext != ".PNG" && ext != ".GIF" && ext != ".JPG" && ext != ".JPEG") {
        alert("圖片限於bmp,png,gif,jpeg,jpg格式");
        return false;
    }
    return true;
}
//判斷手機號碼爲13位和15位
function phone() {
    if (/^13\d{9}$/g.test(tel) || (/^15[8,9]\d{8}$/g.test(tel)))
        return true
    else
        return false;
}
//電話號碼正則表達式(支持手機號碼,3-4位區號,7-8位直播號碼,1-4位分機號)
function JudagePhone(str) {
    var result = str.match(/(\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$/);
    if (result == null) return false;
    return true;
}
//checkbox 變爲單選框 Name屬性的名稱   check 爲選擇的對象  this 
function updateCheck(checkboxName, check) {
    $(':checkbox[name=' + checkboxName + ']').each(function () {
        if ($(this).attr('checked') && $(this).val() != $(check).val()) {
            $(this).attr('checked', false);
        }
    });
}



//得到url路徑傳遞過來的值
$(function () {
    $.extend({
        extend_extend_getUrlVars: function () {
            var vars = [], hash;
            var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
            for (var i = 0; i < hashes.length; i++) {
                hash = hashes[i].split('=');
                vars.push(hash[0]);
                vars[hash[0]] = hash[1];
            }
            return vars;
        },
        extend_getUrlVar: function (name) {
            return $.extend_extend_getUrlVars()[name];
        }
    });
    var id = $.extend_getUrlVar('Id');//根據鍵得到值,使用方法
});
//使用格式: var POL_NAME_EN = $.extend_getUrlVar('輸入傳入的key');
//例如:url爲http://zhidao.baidu.com/?id=123 
// var id=<span style="font-family: Arial, Helvetica, sans-serif;">$.extend_getUrlVar('id');</span>


//轉換日期
Date.prototype.format = function (format) {
    var o = {
        "M+": this.getMonth() + 1, //month
        "d+": this.getDate(), //day
        "h+": this.getHours(), //hour
        "m+": this.getMinutes(), //minute
        "s+": this.getSeconds(), //second
        "q+": Math.floor((this.getMonth() + 3) / 3), //quarter
        "S": this.getMilliseconds() //millisecond
    }
    if (/(y+)/.test(format)) {
        format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    }
    for (var k in o) {
        if (new RegExp("(" + k + ")").test(format)) {
            format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
        }
    }
    return format;
}
//使用方法
// var time = new Date(parseInt(item.AnswerDateTime.replace("/Date(", "").replace(")/", ""), 10));
//time.format('yyyy-MM-dd hh:mm') 






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章