javascript 各种验证
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
// 判断只能为数字
var checkIsInteger = function(str) {
if (str) {
return (/^(\-?)(\d+)$/).test(str) ? true : '只能输入数字!';
} else {
return true;
}
};
// 检查email验证
var checkEmail = function(str) {
if (str) {
if (str.charAt(0) == "." ||
str.charAt(0) == "@" ||
str.indexOf('@', 0) == -1 ||
str.indexOf('.', 0) == -1 ||
str.lastIndexOf("@") == str.length - 1 ||
str.lastIndexOf(".") == str.length - 1) {
return '输入的Email格式不正确!';
} else {
return true;
}
} else {
return true;
}
};
// 效验特殊字符
var chekcString = function(str) {
if (str) {
return (/^[A-Za-z0-9\u0391-\uFFE5_\-]{0,}$/).test(str) ? true : '只能输入英文、数字、中文、下划线(_)和减号(-)!';
} else {
return true;
}
};
// 效验两位小数
var checkFloat = function(str) {
if (str) {
return (/^\d+(\.\d{1,2})?$/).test(str) ? true : '只能输入整数或两位小数!';
} else {
return true;
}
};
// 效验电话号码
var checkTelno = function(val) {
if (val) {
return (/^((((13[0-9]{1})|189|(15[0-9]{1})|(0[1-9]{2}))+\d{8})|((0[1-9]{3}))+\d{7})$/).test(val) ? true : '输入的电话号码格式不正确!';
} else {
return true;
}
};
// 验证手机号码11位
function chMobilePhone(src)
{
if(src.length == 11){
return true;
}else{
return false;
}
}
//起始时间比较
function dateCompare(beginTime,endTime){
if(endTime >= beginTime) return true;
else return false;
}
//验证金额
function isMoney(str){
if (str) {
return (/^-?\d+\.{0,}\d{0,}$/).test(str) ? true : '只能输入金额!';
} else {
return true;
}
}
//--身份证号码验证-支持新的带x身份证
var isIdCardNo = function(num) {
var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
var error;
var varArray = new Array();
var intValue;
var lngProduct = 0;
var intCheckDigit;
var intStrLen = num.length;
var idNumber = num;
var checkDate = function(date) {
return true;
}
// initialize
if ((intStrLen != 15) && (intStrLen != 18)) {
//error = "输入身份证号码长度不对!";
//alert(error);
//frmAddUser.txtIDCard.focus();
return false;
}
// check and set value
for(i=0;i<intStrLen;i++) {
varArray[i] = idNumber.charAt(i);
if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
//error = "错误的身份证号码!.";
//alert(error);
//frmAddUser.txtIDCard.focus();
return false;
} else if (i < 17) {
varArray[i] = varArray[i]*factorArr[i];
}
}
if (intStrLen == 18) {
//check date
var date8 = idNumber.substring(6,14);
if (checkDate(date8) == false) {
//error = "身份证中日期信息不正确!.";
//alert(error);
return false;
}
// calculate the sum of the products
for(i=0;i<17;i++) {
lngProduct = lngProduct + varArray[i];
}
// calculate the check digit
intCheckDigit = 12 - lngProduct % 11;
switch (intCheckDigit) {
case 10:
intCheckDigit = 'X';
break;
case 11:
intCheckDigit = 0;
break;
case 12:
intCheckDigit = 1;
break;
}
// check last digit
if (varArray[17].toUpperCase() != intCheckDigit) {
//error = "身份证效验位错误!...正确为: " + intCheckDigit + ".";
//alert(error);
return false;
}
}
else{ //length is 15
//check date
var date6 = idNumber.substring(6,12);
if (checkDate(date6) == false) {
//alert("身份证日期信息有误!.");
return false;
}
}
//alert ("Correct.");
return true;
}
var checkIsInteger = function(str) {
if (str) {
return (/^(\-?)(\d+)$/).test(str) ? true : '只能输入数字!';
} else {
return true;
}
};
// 检查email验证
var checkEmail = function(str) {
if (str) {
if (str.charAt(0) == "." ||
str.charAt(0) == "@" ||
str.indexOf('@', 0) == -1 ||
str.indexOf('.', 0) == -1 ||
str.lastIndexOf("@") == str.length - 1 ||
str.lastIndexOf(".") == str.length - 1) {
return '输入的Email格式不正确!';
} else {
return true;
}
} else {
return true;
}
};
// 效验特殊字符
var chekcString = function(str) {
if (str) {
return (/^[A-Za-z0-9\u0391-\uFFE5_\-]{0,}$/).test(str) ? true : '只能输入英文、数字、中文、下划线(_)和减号(-)!';
} else {
return true;
}
};
// 效验两位小数
var checkFloat = function(str) {
if (str) {
return (/^\d+(\.\d{1,2})?$/).test(str) ? true : '只能输入整数或两位小数!';
} else {
return true;
}
};
// 效验电话号码
var checkTelno = function(val) {
if (val) {
return (/^((((13[0-9]{1})|189|(15[0-9]{1})|(0[1-9]{2}))+\d{8})|((0[1-9]{3}))+\d{7})$/).test(val) ? true : '输入的电话号码格式不正确!';
} else {
return true;
}
};
// 验证手机号码11位
function chMobilePhone(src)
{
if(src.length == 11){
return true;
}else{
return false;
}
}
//起始时间比较
function dateCompare(beginTime,endTime){
if(endTime >= beginTime) return true;
else return false;
}
//验证金额
function isMoney(str){
if (str) {
return (/^-?\d+\.{0,}\d{0,}$/).test(str) ? true : '只能输入金额!';
} else {
return true;
}
}
//--身份证号码验证-支持新的带x身份证
var isIdCardNo = function(num) {
var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1);
var error;
var varArray = new Array();
var intValue;
var lngProduct = 0;
var intCheckDigit;
var intStrLen = num.length;
var idNumber = num;
var checkDate = function(date) {
return true;
}
// initialize
if ((intStrLen != 15) && (intStrLen != 18)) {
//error = "输入身份证号码长度不对!";
//alert(error);
//frmAddUser.txtIDCard.focus();
return false;
}
// check and set value
for(i=0;i<intStrLen;i++) {
varArray[i] = idNumber.charAt(i);
if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {
//error = "错误的身份证号码!.";
//alert(error);
//frmAddUser.txtIDCard.focus();
return false;
} else if (i < 17) {
varArray[i] = varArray[i]*factorArr[i];
}
}
if (intStrLen == 18) {
//check date
var date8 = idNumber.substring(6,14);
if (checkDate(date8) == false) {
//error = "身份证中日期信息不正确!.";
//alert(error);
return false;
}
// calculate the sum of the products
for(i=0;i<17;i++) {
lngProduct = lngProduct + varArray[i];
}
// calculate the check digit
intCheckDigit = 12 - lngProduct % 11;
switch (intCheckDigit) {
case 10:
intCheckDigit = 'X';
break;
case 11:
intCheckDigit = 0;
break;
case 12:
intCheckDigit = 1;
break;
}
// check last digit
if (varArray[17].toUpperCase() != intCheckDigit) {
//error = "身份证效验位错误!...正确为: " + intCheckDigit + ".";
//alert(error);
return false;
}
}
else{ //length is 15
//check date
var date6 = idNumber.substring(6,12);
if (checkDate(date6) == false) {
//alert("身份证日期信息有误!.");
return false;
}
}
//alert ("Correct.");
return true;
}