JS 表单验证


1、是否是身份证 

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: "国外" }
function isCardID(sId) {
    var iSum = 0;
    var info = "";
    if (!/^\d{17}(\d|x)$/i.test(sId)) { return false };
    sId = sId.replace(/x$/i, "a");
    if (aCity[parseInt(sId.substr(0, 2))] == null) { return false };
    var 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 };
    $("#BirthDay").val(sBirthday);
    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 };
    var sex = sId.substr(16, 1) % 2 ? "1" : "2"; //1男 2女
    $("#Sex").val(sex);
    return true;
}

function isCardID(sId) {
    var iSum = 0;
    var info = "";
    if (!/^\d{17}(\d|x)$/i.test(sId)) { return false };
    sId = sId.replace(/x$/i, "a");
    if (aCity[parseInt(sId.substr(0, 2))] == null) { return false };
    var 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 };
   // $("#BirthDay").val(sBirthday);
    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 };
    var sex = sId.substr(16, 1) % 2 ? "1" : "2"; //1男 2女
   // $("#Sex").val(sex);
    return true;
}
View Code

2、得到客户端的cookid

function getCookie(cookie_name) {
    var allcookies = decodeURIComponent(document.cookie);
    var cookie_pos = allcookies.indexOf(cookie_name);
    if (cookie_pos != -1) {
        cookie_pos += cookie_name.length + 1;
        var cookie_end = allcookies.indexOf("&", cookie_pos);
        if (cookie_end == -1) {
            cookie_end = allcookies.length;
        }
        var value = unescape(allcookies.substring(cookie_pos, cookie_end));  
    }
    return value;
}
View Code

3、提示错误信息

function tip(obj, type, message) {
    var id = obj.attr("id");
    if (type == "focus") {
        $("#" + id + "Tip").text(message);
        $("#" + id + "Error").hide();
        $("#" + id + "Correct").hide();
        return;
    }
    if (type == "error") {
        $("#" + id + "Tip").text(message).css("color", "red");
        $("#" + id + "Error").css({ "display": "inline-block" });
        $("#" + id + "Correct").css({ "display": "none" });
        return;
    }
    if (type == "correct") {
        $("#" + id + "Tip").text(message);
        $("#" + id + "Error").hide();
        $("#" + id + "Correct").hide();
        return;
    }
}
View Code

4、生成随机数

function RndNum(n) {
    var rnd = "";
    for (var i = 0; i < n; i++)
        rnd += Math.floor(Math.random() * 10);
    return rnd;
}
View Code

5、数值判断

function clearNoNum(obj) {
    obj.value = obj.value.replace(/[^\d.]/g, ""); //清除“数字”以外的字符
    obj.value = obj.value.replace(/^\./g, ""); //验证第一个字符是数字而不是.
    obj.value = obj.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的.
    obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", "."); //保证.只出现一次,而不能出现两次以上
    obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');
}
View Code

6、验证手机号码

function isphone(s) {
    var str = s;
    var reg = /^0?(13[0-9]|15[012356789]|18[012356789]|14[57])[0-9]{8}$/;
    if (reg.test(str)) {
        return true;
    }
    else {
        return false;
    }
}
View Code

7、验证座机号码为为7-8位数字并带有区号

function isTel(s) {
    var str = s;
    var reg = /^\d{3}-\d{8}|\d{4}-\d{7}$/;
    if (reg.test(str)) {
        return true;
    }
    else {
        return false;
    }
}
View Code

区号

function isAreaCode(s)
{
    var str = s;
    if (str != "") {
        if (!(/^(0\d{2,3})$/).test(str)) {
            if (str.length > 3) {
                return false;
            } else {
                return true;
            }
            return false;
        } else {
            return true;
        }
    } else {
        return false;
    }
}
View Code
function isPhone(s) {
    var str = s;
    if (str != "") {
        if (!(/^(\d{7,8})$/).test(str)) {
            if (str.length != 8) {
                return false;
            } else {
                return true;
            }
            return false;
        } else {
            return true;
        }
    } else {
        return false;
    }
}
View Code

8、只能输入数字

$("#Button1").click(function () {
   var $val = $("#Text1").val();
    var code;
    for (var i = 0; i < $val.length; i++) {
        //charAt()获取指定位置字符串,charCodeAt()返回该字符串的编码  
       //0的ASCII是48,9的ASCII是57  
         code = $val.charAt(i).charCodeAt(0);
        if (code < 48 || code > 57) {
           $("#error").show();
           break;
       }
       else {
           $("#error").hide();
       }
    }
});
View Code

9、当有键按下时,如果不是数字或字母则删除键值

$("#id").keyup(function () {
    $(this).val($(this).val().replace(/[^0-9.]/g, ''));
    $(this).val($(this).val().replace(/^\./g, ""));         
});
View Code

10、文本框失去焦点 验证身份证

$("#idcard").blur(function ()
{
   var idcard = $("#idcard").val();
    alert(idcard);
  var bo = /^(\d{6})(18|19|20)?(\d{2})([01]\d)([0123]\d)(\d{3})(\d|X)?$/.test(idcard);
    var year = idcard.substr(6, 4);
   var month = idcard.substr(10, 2);
    var day = idcard.substr(12, 2);
   if (bo == false || month > 12 || day > 31) {
        alert('请输入正确的身份证号码!');
       $("#idcard").val('');
       $("#nian").val('');
       $("#yue").val('');
       $("#ri").val('');
       return false;
   }
   else {
        $("#nian").val(year);
       $("#yue").val(month);
       $("#ri").val(day);
   }
});
View Code

11、返回xmlhttp对象

function getXmlAjaxObj() {
    var xmlObj;
    if (window.XMLHttpRequest) {
        xmlObj = new XMLHttpRequest();
    }
    else {
        xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
    }
    return xmlObj;
}
View Code

12、验证金额

function isSalary(s) {
    var str = s;
    var regx = new RegExp("^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$");
    if (regx.test(str)) {
        return true;
    }
    else {
        return false;
    }
}
View Code

13、验证邮箱

function isEmail(s) {
    var reg = /^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/;
    if (reg.test(s)) {
        return true;
    }
    else {
        return false;
    }
}
View Code

14、验证出生年分

function isBirthYear(s) {
    var reg = /^[12][0-9][0-9][0-9]$/;
    if (reg.test(s)) {
        return true;
    }
    else {
        return false;
    }
}
View Code

15、验证整数

function isIntNum(s) {
    var reg = /^\d+$/;
    if (reg.test(s)) {
        return true;
    }
    else {
        return false;
    }
}
View Code

16、检查是否数字

function isNum(a) {
    var reg = /^d+(.d+)?$/;
    if (reg.test(a)) {
        return true;
    }
    else {
        return false;
    };
}
View Code

17、检查是否为正数

function   isUnsignedNumeric(a)
{
    var reg = /^d+(.d+)?$/;
    if (reg.test(a)) {
        return true;
    }
    else {
        return false;
    }
}
View Code
//验证数字:^[0-9]*$ 
//验证n位的数字:^d{n}$ 
//验证至少n位数字:^d{n,}$ 
//验证m-n位的数字:^d{m,n}$ 
//验证零和非零开头的数字:^(0|[1-9][0-9]*)$ 
//验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$ 
//验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$ 
//验证非零的正整数:^+?[1-9][0-9]*$ 
//验证非零的负整数:^-[1-9][0-9]*$ 
//验证非负整数(正整数 + 0) ^d+$ 
//验证非正整数(负整数 + 0) ^((-d+)|(0+))$ 
//验证长度为3的字符:^.{3}$ 
//验证由26个英文字母组成的字符串:^[A-Za-z]+$ 
//验证由26个大写英文字母组成的字符串:^[A-Z]+$ 
//验证由26个小写英文字母组成的字符串:^[a-z]+$ 
//验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$ 
//验证由数字、26个英文字母或者下划线组成的字符串:^w+$ 
//验证用户密码:^[a-zA-Z]w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。 
//验证是否含有 ^%&',;=?$" 等字符:[^%&',;=?$x22]+ 
//验证汉字:^[u4e00-u9fa5],{0,}$ 
//验证Email地址:^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$ 
//验证InternetURL:^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$ 
//验证电话号码:^((d{3,4})|d{3,4}-)?d{7,8}$:--正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。 
//验证身份证号(15位或18位数字):^d{15}|d{}18$ 
//验证一年的12个月:^(0?[1-9]|1[0-2])$ 正确格式为:“01”-“09”和“1”“12” 
//验证一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$ 正确格式为:01、09和1、31。 
//整数:^-?d+$ 
//非负浮点数(正浮点数 + 0):^d+(.d+)?$ 
//正浮点数: ^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$ 
//非正浮点数(负浮点数 + 0): ^((-d+(.d+)?)|(0+(.0+)?))$ 
//负浮点数: ^(-(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*)))$ 
//浮点数: ^(-?d+)(.d+)?$
View Code

18、验证短信码

function isCode(s)
{
    var reg = /^[0-9]{6}$/;
    if (reg.test(s)) {
        return true;
    }
    else {
        return false;
    }
}
View Code

19、占位符

function getMoneyStr(id)
{
    var val = document.getElementById(id).value.replace(/\,/g, "");
    if (isSalary(val.replace(/(^\s*)/g, ""))) {

        val = val.replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,");
        document.getElementById(id).value = val;
    }
    //return val;
}
View Code

20、获取url参数

function getQueryString(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
    var r = window.location.search.substr(1).match(reg);
    if (r != null) return unescape(r[2]); return null;
}
View Code

 

posted on 2015-01-20 14:17  月&&生  阅读(224)  评论(0编辑  收藏  举报