您的位置:首页 > Web前端 > JavaScript

常用js验证函数

2012-07-10 11:58 549 查看
//数字检测

function checkNumber(str) {

if (str.Trim() == "") {

return true;

}

var patrn = /^[0-9]+$/;

return patrn.test(str.Trim());

}

//检测价格

function checkPrice(str) {

if (str.Trim() == "") {

return true;

}

var patrn = /^\d{1,5}(\.(\d{1,2}))?$/;

return patrn.test(str.Trim());

}

//身份证验证严格校验

function checkIdcard(idcard) {

var Errors = new Array(

"身份证验证通过!",

"身份证号码位数不对!",

"身份证号码出生日期超出范围或含有非法字符!",

"身份证号码校验错误!",

"身份证地区非法!"

);

var area = { 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: "国外" }

var idcard, Y, JYM;

var S, M;

var idcard_array = new Array();

idcard_array = idcard.split("");

//地区检验

if (area[parseInt(idcard.substr(0, 2))] == null) return Errors[4];

//身份号码位数及格式检验

switch (idcard.length) {

case 15:

if ((parseInt(idcard.substr(6, 2)) + 1900) % 4 == 0 || ((parseInt(idcard.substr(6, 2)) + 1900) % 100 == 0 && (parseInt(idcard.substr(6, 2)) + 1900) % 4 == 0)) {

ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/; //测试出生日期的合法性

} else {

ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/; //测试出生日期的合法性

}

if (ereg.test(idcard)) return Errors[0];

else return Errors[2];

break;

case 18:

//18位身份号码检测

//出生日期的合法性检查

//闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))

//平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))

if (parseInt(idcard.substr(6, 4)) % 4 == 0 || (parseInt(idcard.substr(6, 4)) % 100 == 0 && parseInt(idcard.substr(6, 4)) % 4 == 0)) {

ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/; //闰年出生日期的合法性正则表达式

} else {

ereg = /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/; //平年出生日期的合法性正则表达式

}

if (ereg.test(idcard)) {//测试出生日期的合法性

//计算校验位

S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7

+ (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9

+ (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10

+ (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5

+ (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8

+ (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4

+ (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2

+ parseInt(idcard_array[7]) * 1

+ parseInt(idcard_array[8]) * 6

+ parseInt(idcard_array[9]) * 3;

Y = S % 11;

M = "F";

JYM = "10X98765432";

M = JYM.substr(Y, 1); //判断校验位

if (M == idcard_array[17]) return Errors[0]; //检测ID的校验位

else return Errors[3];

}

else return Errors[2];

break;

default:

return Errors[1];

break;

}

}

//联系电话(手机/电话皆可)验证 1 - 座机 、 0 - 手机 、 其他 - 不区分

function checkPhone(str, isPhone) {

if (str.Trim() == "") {

return true;

}

var mobile = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;

var tel = /^(\d{3,4}-?)?\d{7,9}(-\d{3,6})?$/;

if (str.startWith("1")) {

return mobile.test(str.Trim());

}

else if (isPhone == 1) {

return (tel.test(str.Trim()));

}

else if (isPhone == 0) {

return mobile.test(str.Trim());

}

return (tel.test(str.Trim()) || mobile.test(str.Trim()));

}

//邮政编码验证

function checkZipCode(str) {

if (str.Trim() == "") {

return true;

}

var tel = /^[0-9]{6}$/;

return tel.test(str.Trim());

}

//邮箱验证

function checkEmail(str) {

if (str.Trim() == "") {

return true;

}

var reg = /^\w+((-\w+)|(\.\w+))*\@{1}\w+\.{1}\w{2,4}(\.{0,1}\w{2}){0,1}/ig;

return reg.test(str.Trim());

}

//输入判断比较

function chkValueIn(chkObjId, chkValue) {

if ($("#" + chkObjId).val().Trim() == chkValue ) {

$("#" + chkObjId).val("");

}

}

//输出判断比较

function chkValueOut(chkObjId, chkValue) {

if ($("#" + chkObjId).val().Trim() == "") {

$("#" + chkObjId).val(chkValue);

}

}

//用于最大字数限制输入框

//contentId 内容输入容器Id

//maxId 剩余字数显示容器Id

//maxlength 最大字数值

function checkChar(contentId, maxId, maxlength) {

var value = $("#" + contentId).val();

var length = 0;

for (var i = 0; i < value.length; i++) {

var ch = value.charAt(i);

if (isNormalChar(ch))

length += 1;

else

length += 2;

}

if (length > maxlength) {

var currentV = "";

length = 0;

for (var i = 0; i < value.length; i++) {

length++;

if (value.charCodeAt(i) > 127) {

length++;

}

if (length <= maxlength) {

currentV = $("#" + contentId).val().substring(0, i);

}

else {

break;

}

}

$("#" + contentId).val(currentV);

$("#" + maxId).html("0");

}

else {

var residual = parseInt((maxlength - length) / 2);

$("#" + maxId).html(residual);

}

}

function isNormalChar(ch) {

if (ch.length > 1) {

return false;

}

if (ch == "") {

return true;

}

var pattern = /^([\\uFF66-\\uFF9F]|[\\u0000-\\u00FF])*$/gi;

if (pattern.test(ch)) {

return true;

} else {

return false;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: