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; }
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; }
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; } }
4、生成随机数
function RndNum(n) { var rnd = ""; for (var i = 0; i < n; i++) rnd += Math.floor(Math.random() * 10); return rnd; }
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'); }
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; } }
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; } }
区号
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; } }
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; } }
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(); } } });
9、当有键按下时,如果不是数字或字母则删除键值
$("#id").keyup(function () { $(this).val($(this).val().replace(/[^0-9.]/g, '')); $(this).val($(this).val().replace(/^\./g, "")); });
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); } });
11、返回xmlhttp对象
function getXmlAjaxObj() { var xmlObj; if (window.XMLHttpRequest) { xmlObj = new XMLHttpRequest(); } else { xmlObj = new ActiveXObject("Microsoft.XMLHTTP"); } return xmlObj; }
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; } }
13、验证邮箱
function isEmail(s) { var reg = /^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/; if (reg.test(s)) { return true; } else { return false; } }
14、验证出生年分
function isBirthYear(s) { var reg = /^[12][0-9][0-9][0-9]$/; if (reg.test(s)) { return true; } else { return false; } }
15、验证整数
function isIntNum(s) { var reg = /^\d+$/; if (reg.test(s)) { return true; } else { return false; } }
16、检查是否数字
function isNum(a) { var reg = /^d+(.d+)?$/; if (reg.test(a)) { return true; } else { return false; }; }
17、检查是否为正数
function isUnsignedNumeric(a) { var reg = /^d+(.d+)?$/; if (reg.test(a)) { return true; } else { return false; } }
//验证数字:^[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+)?$
18、验证短信码
function isCode(s) { var reg = /^[0-9]{6}$/; if (reg.test(s)) { return true; } else { return false; } }
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; }
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; }