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') 






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