web页面常用js验证方法

                    web页面开发经常会遇到数据验证及URL处理,同时涉及到正则表达式,下面就本人常用的借鉴或自行开发的js处理方法粘函数贴出来,供大家参考(需先引入jquery框架):


//页面加载函数
$(function () {
    //$("input[type='text'],textarea").attr("autocomplete", "off");(关闭或打开文本框自动保存)
    var pd = $("#printtr");
    var ed = $("#edittr");
    var print = getQueryStrVal("type");
    if (print == "print") {
        pd.show();
        ed.hide();
    }
    //父级框架高度自适应 
    var parent = $(window.parent.document).find("iframe");
    //alert(parent.src);
    if (parent != "undefined" && parent!=null) {
        parent.load(function () {
            var heig = $(this).css("height") < 400 ? 400 : body.css("height");
           // alert(heig);
           // $(this).css({ "height": "560px", "overflow": "auto" });
        })
    }


    //本页面框架高度自适应
    var iframe = $("iframe");
   // alert(parent.src);
    if (iframe != "undefined" && parent != null) {
        iframe.load(function () {
            var mainheight = $(this).contents().find("body").height();
            //alert(mainheight);
            $(this).css({ "height": "580px", "overflow": "auto" });

        });
    }
    //本页面高度
    var body = $(document.body) || $(document);
    if (body) {
        //alert(body.css("height"));
        var heig = body.css("height") < 400 ? 400 : body.css("height");
       // alert(heig);
        body.css({ "height": heig, "overflow": "auto" });
    }
})


//页面利用页面原始url参数跳转到新页面,参数新页面名称
function psotEditUrl(page) {
    var url = "";
    var hr = window.location.href;
    if (hr.indexOf('?') > 0) {
        url = hr.split('?')[1];
    }
    window.location.href = page + '?' + url;
    return false;
}


//验证页面textbox及DropDownList控件
//用法:if (!NullCheck(brm, '请XX名称', '')) { return false; }
//参数1(控件ID),参数2(验证说明消息),参数3(显示标签ID)(可选)
function NullCheck(txt, alm, lbm) {
    var va = document.getElementById(txt);
    var lm = document.getElementById(lbm);
    if (va == null) { alert(txt + "验证对象不存在!"); return false; }
    if (lm != null) { lm.innerText = ""; }
    if (va.value == "" || va.value.length == 0) {
        if (lbm == null || lbm == "") { alert(alm); va.focus(); return false; }
        else {
            if (lm == null) { alert(lbm + "标签不存在!"); return false; }
            lm.innerText = alm; va.focus(); return false;
        }
    }
    return true;
}

//验证对象是否存在
function iftr(p) { return p != undefined && p != null && p.toString() != "undefined" && p.length > 0; }
function ifstr(p) { return p != undefined && p != null && p.toString() != "undefined" && p.length == 0; }
//URL加密
function addencode(p) { return (p != null && p != undefined && p.length > 0) ? encodeURIComponent(p) : ""; }

//删除字符串HML标签元素,大于指定长度带...
//参数1(字符串),参数2(指定长度)
function delHtmlTag(str, n) {
    var txt = '';
    if (iftr(str)) {
        txt = str.replace(/<[^>]+>/g, "");
        if (txt.length > n) { txt = txt.substring(0, n - 2) + ".."; }
    }
    return txt;
}

//删除字符串HML标签元素,大于指定长度不带...
//参数1(字符串),参数2(自定长度)
function delHtmlSub(str, n) {
    var txt = '';
    if (iftr(str)) {
        txt = str.replace(/<[^>]+>/g, "");
        if (txt.length > n) { txt = txt.substring(0, n); }
    }
    return txt;
}

//删除字符串HML标签元素
//参数1(html字符串)
function delHtml(str) {
    var txt = '';
    if (iftr(str)) {
        txt = str.replace(/<[^>]+>/g, "");
    }
    return txt;
}

//正整数验证
function CheckIsInteger(o) {
    if (o.value.length > 0) {
        var test1 = o.value;
        var type = "^[0-9]*[1-9][0-9]*$";
        var re = new RegExp(type);
        if (test1.match(re) == null) {
           // alert("格式不正确,应输入正整数!");
            o.value = '';
            return;
        }
    }
}

//验证小时分钟大小函数,通用 结束时间须大于开始时间
function dateCump(date1, date2) {
    var dates1 = '2014/01/01 ' + date1.replace(/-/g, "/") + ":00";
    var dates2 = '2014/01/01 ' + date2.replace(/-/g, "/") + ":00";
    var de1 = Date.parse(new Date(dates1));
    var de2 = Date.parse(new Date(dates2));
    if ((de1 - de2) > 0 || (de1 - de2) == 0) {
        return false;
    }
    return true;
}


//验证日期小时分钟大小函数,通用结束时间须大于开始时间
function datehmCump(date1, date2) {
    var dates1 = date1.replace(/-/g, "/");
    var dates2 = date2.replace(/-/g, "/");
    var de1 = Date.parse(new Date(dates1));
    var de2 = Date.parse(new Date(dates2));
    if ((de1 - de2) > 0 || (de1 - de2) == 0) {
        return false;
    }
    return true;
}

//返回时间差的double值
function DateDiff(sDate1, sDate2) {    //sDate1和sDate2是2006-12-18格式 
    var aDate, oDate1, oDate2, iDays
    aDate = sDate1.split("-")
    oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0])    //转换为12-18-2006格式 
    aDate = sDate2.split("-")
    oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0])

    iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24)    //把相差的毫秒数转换为天数 

    var da = (Date.parse(oDate1) - Date.parse(oDate2));
    //alert(da);
    if (da > 0) {
        // alert("结束时间不能大于请假时间!");
        iDays = '-' + iDays;
    }
    return iDays
}

//短时间验证,形如 (13:04:06)
function isTime(str) {
    var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);
    if (a == null) { return false }
    if (a[1] > 24 || a[3] > 60 || a[4] > 60) {
        return false;
    }
    return true;
}
/**
* 小时:分钟的正则表达式检查(08:11)
*/
//小时:分钟验证(08:11)
function isHoursTmer(str) {
    if (str == null) {
        return false;
    }
    var re = /^([0-1]{1}\d|2[0-3]):([0-5]\d)$/;
    return !re.test(str);
}

//短日期验证,形如 (2003-12-05)
function isDate(str) {
    var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
    if (r == null) return false;
    var d = new Date(r[1], r[3] - 1, r[4]);
    return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d.getDate() == r[4]);
}

//长时间验证,形如 (2003-12-05 13:04:06)
function isDateTimes(str) {
    var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})|(\d{1,2}):(\d{1,2})$/;
    var r = str.match(reg);
    if (r == null) return false;
    var d = new Date(r[1], r[3] - 1, r[4], r[5], r[6], r[7]);
    return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d.getDate() == r[4] && d.getHours() == r[5] && d.getMinutes() == r[6] && d.getSeconds() == r[7]);
}

//正整数验证
function isNum(str) {
    var rg = /^[1-9]\d*$/;
    if (!rg.test(str)) {
        return false;
    }
    return true;
}

//获取指定url参数值
//参数1(url)键,参数1(完整url,可选默认为本页),
function getQueryStrVal(name, src) {
    var ret = '';
    if (src == null || src == "" || src == undefined) { src = window.location.href; }
    if (src.indexOf("?") >= 0 && src.indexOf(name + '=') >= 0) {
        var query = src.substring(src.indexOf("?") + 1); var params = query.split("&");
        for (var n in params) {
            var child = params[n].split("="); if (child.length > 0) {
                if (name == child[0]) { ret = child[1]; break; }
            }
        }
    }
    return ret;
}

//验证电话及手机
function checkTel(txt, me) {
    var reg = /^(0\d{11}|\d{11}|\d{8}|\d{3,4}-\d{7,8})?(-\d{1,8})?$/;
    var txtbox = document.getElementById(txt);
    var mes = document.getElementById(me);
    mes.innerText = '';
    if (txtbox.value != '' && !reg.test(txtbox.value)) {
        if (mes != null) {
            mes.innerText = "输入电话格式不正确";
        }
        else {
            alert("输入电话格式不正确");
        }
        txtbox.focus();
        return false;
    }

    return true;
}

//验证邮箱
function checkEmail(txt, me) {
    var reg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
    var txtbox = document.getElementById(txt);
    var mes = document.getElementById(me);
    mes.innerText = '';
    if (txtbox.value != '' && !reg.test(txtbox.value)) {
        if (mes != null) {
            mes.innerText = "输入邮箱格式不正确";
        }
        else {
            alert("输入邮箱格式不正确");
        }
        txtbox.focus();
        return false;
    }
    return true;
}

//返回当前时间字符串(月份加1)
function formatDate(da) {
    var year = da.getFullYear();
    var month = da.getMonth()+1;
    var day = da.getDate();
    var hour = da.getHours();
    var min = da.getMinutes();
    var s = da.getSeconds();
    return year + '-' + month + '-' + day + ' ' + hour + ':' + min + ':' + s;
}

//返回当前Date时间对象(月份加1)
function getCurrDate() {
    var da = new Date();
    var year = da.getFullYear();
    var month = da.getMonth() + 1;
    var day = da.getDate();
    var hour = da.getHours();
    var min = da.getMinutes();
    var s = da.getSeconds();
    return new Date(year, month, day, hour, min, s);
}

//当前时间字符串(标准不足两位数带0格式)
function formatDates(da, n) {
    var ret = '';
    if (da != null) {
        var year = da.getFullYear();
        var month = da.getMonth();
        if (n != null) { month = month + 1; }
        var day = da.getDate();
        var hour = da.getHours();
        var min = da.getMinutes();
        var second = da.getSeconds();
        if (month < 10) { month = "0" + month; }
        if (day < 10) { day = "0" + day; }
        if (hour < 10) { hour = "0" + hour; }
        if (min < 10) { min = "0" + min; }
        if (second < 10) { second = "0" + second; }
        ret = year + '-' + month + '-' + day + ' ' + hour + ':' + min + ':' + second;
    }
    return ret;
}

//其它常用正则表达式
var regexEnum =
{
    intege: "^-?[1-9]\\d*$",     //整数
    intege1: "^[1-9]\\d*$",     //正整数
    intege2: "^-[1-9]\\d*$",     //负整数
    num: "^([+-]?)\\d*\\.?\\d+$",   //数字
    num1: "^[1-9]\\d*|0$",     //正数(正整数 + 0)
    num2: "^-[1-9]\\d*|0$",     //负数(负整数 + 0)
    decmal: "^([+-]?)\\d*\\.\\d+$",   //浮点数
    decmal1: "^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*$",   //正浮点数
    decmal2: "^-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*)$",  //负浮点数
    decmal3: "^-?([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0)$",  //浮点数
    decmal4: "^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0$",   //非负浮点数(正浮点数 + 0)
    decmal5: "^(-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*))|0?.0+|0$",  //非正浮点数(负浮点数 + 0)
    email: "^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$", //邮件
    color: "^[a-fA-F0-9]{6}$",    //颜色
    url: "^http[s]?:\\/\\/([\\w-]+\\.)+[\\w-]+([\\w-./?%&=]*)?$", //url
    chinese: "^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+$",     //仅中文
    ascii: "^[\\x00-\\xFF]+$",    //仅ACSII字符
    zipcode: "^\\d{6}$",      //邮编
    mobile: "^(13[0-9]{9}|15[012356789][0-9]{8}|18[0256789][0-9]{8}|147[0-9]{8}$)",    //手机
    ip4: "^(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)$", //ip地址
    notempty: "^\\S+$",      //非空
    picture: "(.*)\\.(jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga)$", //图片
    rar: "(.*)\\.(rar|zip|7zip|tgz)$",        //压缩文件
    date: "\\d{4}(\\-|\\/|\.)\\d{1,2}\\1\\d{1,2}$", //日期
    date1: "^(?:(?!0000)[0-9]{4}([-/.]?)(?:(?:0?[1-9]|1[0-2])\1(?:0?[1-9]|1[0-9]|2[0-8])|(?:0?[13-9]|1[0-2])\1(?:29|30)|(?:0?[13578]|1[02])\1(?:31))|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)([-/.]?)0?2\2(?:29))$", //日期
    datetime: "([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})/(((0[13578]|1[02])/(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)/(0[1-9]|[12][0-9]|30))|(02/(0[1-9]|[1][0-9]|2[0-8])))|([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})/((([13578]|1[02])/([1-9]|[12][0-9]|3[01]))|(([469]|11)/([1-9]|[12][0-9]|30))|(2/([1-9]|[1][0-9]|2[0-8])))", //日期+时间
    qq: "^[1-9]*[1-9][0-9]*$",    //QQ号码
    tel: "^(([0\\+]\\d{2,3}-)?(0\\d{2,3})-)?(\\d{7,8})(-(\\d{3,}))?$|^(\\d{11})$", //电话号码的函数(包括验证国内区号,国际区号,分机号),另可验证手机号码 
    username: "^\\w+$",      //用来用户注册。匹配由数字、26个英文字母或者下划线组成的字符串
    letter: "^[A-Za-z]+$",     //字母
    letter_u: "^[A-Z]+$",     //大写字母
    letter_l: "^[a-z]+$",     //小写字母
    idcard: "^[1-9]([0-9]{14}|[0-9]{17})$", //身份证
    time: "^\[0-2]{1}\[0-6]{1}:\[0-5]{1}\[0-9]{1}:\[0-5]{1}\[0-9]{1}", //时间验证
    hime: "^([0-1]{1}\\d|2[0-3]):([0-5]\\d)$" //小时分钟验证^(([0-1]\d)|(2[0-4])):[0-5]\d$ " ^([0-1]{1}\d|2[0-3]):([0-5]\d)$";
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值