随笔 - 46  文章 - 36 评论 - 43 阅读 - 40357

/* ===========================================================
模块说明:对于数据验证的一些补充功能
charset:gb2312
调用模块:stringutils.js
搜集整理:sagahu@163.com
最后修订:2011-12-15
*/

function isSpace(str) {
    var strComp = str;
    try {
        if (strComp == " " || strComp == "" || strComp == " " || strComp == null || strComp == "null" || strComp.Trim().length == 0 || typeof str == "undefined" || str == "undefined") {
            return true;
        }
        else {
            return false;
        }
    } catch (e) { return false; }
}

function isRequire(value) { var regx = /.+/; return regx.test(value); }

function isInt(value) { var regx = /^[-\+]?\d+$/; return regx.test(value); }
function isDouble(value) { var regx = /^[-\+]?\d+(\.\d+)?$/; return regx.test(value); }
function isCurrency(value) { var regx = /^\d+(\.\d+)?$/; return regx.test(value); }

function isEmail(value) { var regx = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/; return regx.test(value); }
function IsPostcode(value) { var regx = /^\d{6}$/; return regx.test(value); }
function isIdCard(sId) {
    var aCity = {
        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: "国外"
    };
    if (!/^\d{15}(\d{2}(\d|x))?$/i.test(sId)) {
        return false;
    }
    if (aCity[parseInt(sId.substr(0, 2))] == null) {
        return false;
    }
    if (sId.length == 15) {
        sBirthday = "19" + sId.substr(6, 2) + "-" + Number(sId.substr(8, 2)) + "-" + Number(sId.substr(10, 2));
    }
    else {
        sBirthday = sId.substr(6, 4) + "-" + Number(sId.substr(10, 2)) + "-" + Number(sId.substr(12, 2));
    }
    var d = new Date(sBirthday.replace(/-/g, "/"))
    if (sBirthday != (d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate())) {
        return false;
    }
    if (sId.length == 18) {
        var iSum = 0
        sId = sId.replace(/x$/i, "a");
        for (var i = 17; i >= 0; i--) {
            iSum += (Math.pow(2, i) % 11) * parseInt(sId.charAt(17 - i), 11)
        }
        if (iSum % 11 != 1) {
            return false;
        }
    }
    return true;
}

function isPhone(str) {
    var reg = /^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?(,(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?)*$/;
    return reg.test(str);
}
function isMobile(str) {
    var reg = /(^0?[1][3|4|5|8][0-9]{9}(,0?[1][3|4|5|8][0-9]{9})*$)/;
    return reg.test(str);
}

function containsDoubleQuotes(value) { var regx = /[\"]/; return regx.test(value); }
function containsSingleQuotes(value) { var regx = /[\']/; return regx.test(value); }

//包含中文字符,中文字符不等同于双字节字符
function containsHz(value) { regx = /[\u4e00-\u9fa5]/; return regx.test(value); }

posted on   萨迦狐  阅读(229)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示