var validateUtil = new Object();
validateUtil.isEmpty = function(id) {
/// <summary>检测元素</summary>
/// <param name="id">元素id</param>
var str = stringUtil.trim($(id).value);
if (str.length == 0) {
return true;
}
return false;
}
validateUtil.isContainChinese = function(str) {
/// <summary>检测字符串中是否有汉字</summary>
var reg = /[\u4e00-\u9fa5]/;
return reg.test(str);
}
validateUtil.isValidUserName = function(strUserName) {
/// <summary>检测用户名,长度在6到15位之间,且只能由中英文、数字、-、_构成,
///中文算两个字符</summary>
if (stringUtil.len(strUserName) >= 6 && stringUtil.len(strUserName) <= 15) {
var reg = /([\u4e00-\u9fa5]|[\w-])/g;
return reg.test(strUserName);
}
return false;
}
validateUtil.isValidPassword = function(strPass) {
/// <summary>检测密码,密码长度在6到15位之间,且只能由英文字母、数字、-、_构成,
///且首位必须是英文字母</summary>
var reg = /^[a-zA-Z][\w-]{5,15}$/;
return reg.test(strPass);
}
validateUtil.isValidEmail = function(strEmail) {
/// <summary>检测Email地址是否合法</summary>
var reg = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
return reg.test(strEmail);
}
validateUtil.isValidDate = function(strDate, separator) {
/// <summary>检测日期是否合法</summary>
/// <param name="separator">可选项:年月日之间的分隔符,只可以为'-'或'/',
默认为'-'</param>
if (strDate.length == 0) {
return false;
}
//根据正则表达式判断基本的日期格式是否正确:(1|2)xxx-xx-xx
if (separator == '/') {
var reg = /^(1|2)([\d]){3}\/[\d]{2}\/[\d]{2}/;
if (!reg.test(strDate)) {
return false;
}
}
else {
var reg = /^(1|2)([\d]){3}-[\d]{2}-[\d]{2}/;
if (!reg.test(strDate)) {
return false;
}
}
//去除日期中的 '-' 或 '/' 分隔符
var strFormatDate = strDate.replace(/(-|\/)/g, '');
var year, month, day;
//取得年月份的具体值
year = isIE ?
strFormatDate.substr(0, 4) : strFormatDate.substr(0, 4) + 1900;
month = strFormatDate.substr(4, 2);
day = strFormatDate.substr(6, 2);
//检测年月日的合法性
return checkDate(year, month, day);
}
validateUtil.isValidCid = function(strId) {
/// <summary>检测身份证号码是否合法,若为15位则验证成功后返回转换为18位的身份证号,
///若为18位则验证成功后则返回true</summary>
strId = strId.toUpperCase();
//判断基本的身份证号码格式是否正确:15位时全为数字,18位前17位为数字,
最后一位是校验位,可能为数字或字符X。
if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(strId))) {
return false;
}
//校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10
//下面分别分析出生日期和校验位
var strIdLength = strId.length;
var reg;
var year, month, day;
if (strIdLength == 15) {
reg = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/);
//如"123456789123456",则arrSplit为123456789123456,123456,78,91,23,456
var arrSplit = strId.match(reg);
//检查生日日期是否正确
var year = '19' + arrSplit[2];
var month = arrSplit[3];
var day = arrSplit[4];
if (!checkDate(year, month, day)) {
//输入的身份证号里出生日期不对
return false;
}
else {
//将15位身份证转成18位
return strId.substr(0, 6) + '19' + strId.substr(6, 9) + 'X';
}
}
if (strIdLength == 18) {
reg = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/);
//如"12345678912345678X",则arrSplit为12345678912345678X,123456,7891,23,
45,678,X
var arrSplit = strId.match(reg);
//检查生日日期是否正确
var year = '19' + arrSplit[2];
var month = arrSplit[3];
var day = arrSplit[4];
if (!checkDate(year, month, day)) {
//输入的身份证号里出生日期不对
return false;
}
else {
//检验18位身份证的校验码是否正确。
//校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
var validStrId;
var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5,
8, 4, 2);
var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4',
'3', '2');
var nTemp = 0, i;
for (i = 0; i < 17; i++) {
nTemp += strId[i] * arrInt[i];
}
validStrId = arrCh[nTemp % 11];
if (validStrId != strId.substr(17, 1)) {
//18位身份证的校验码不正确,最后以为应该是+ validStrId);
return false;
}
}
}
return true;
}
function checkDate(year, month, day) {
//月份不可大于12,天数不可大于31
if (parseInt(month, 10) <= 0 || parseInt(month, 10) > 12 ||
parseInt(day, 10) <= 0 || parseInt(day, 10) > 31) {
return false;
}
//判断是否是闰年
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
//闰年2月不可大于29天
if (parseInt(month, 10) == 2) {
if (parseInt(day, 10) > 29) {
return false;
}
}
}
else {
//平年2月不可大于28天
if (parseInt(month, 10) == 2) {
if (parseInt(day, 10) > 28) {
return false;
}
}
}
var monthArr = new Array(1, 3, 5, 7, 8, 10, 12);
for (var i = 0; i < monthArr.length; i++) {
//“大月”天数不可大于31
if (monthArr[i] == parseInt(month, 10)) {
if (parseInt(day, 10) > 31) {
return false;
}
}
else {
//“小月”天数不可大于30
if (parseInt(day, 10) > 30) {
return false;
}
}
}
return true;
}
分享到:
相关推荐
邮箱校验正则表达式,及其jsp编写过程,JavaScript表单验证email邮箱,判断一个输入量是否为邮箱email,通过正则表达式实现。
javascript 校验正则表达式,各种正则表达式实例
NULL 博文链接:https://aimilin6688.iteye.com/blog/1256326
您可能感兴趣的文章:javascript 手机号码正则表达式验证函数JS正则表达式验证数字代码JavaScript正则表达式验证身份证号码是否合法(两种方法)jquery正则表达式验证(手机号、身份证号、中文名称)邮箱地址正则...
JavaScript正则表达式验证身份证号码是否合法(两种方法)分析.docx
主要介绍了Javascript校验密码复杂度的正则表达式及正则表达式校验密码的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
您可能感兴趣的文章:jquery 正整数数字校验正则表达式JavaScript正则表达式校验非零的正整数实例利用js正则表达式校验正数、负数、和小数Javascript校验密码复杂度的正则表达式最全的常用正则表达式大全——包括...
关于验证一些身份证.电话号码.用户名.密码等等的正则表达式 还有实例说明的哦
JavaScript正则表达式验证yyyy-mm-dd格式的日期
javascript正则表达式验证IP地址的端口合法性 if (!(/^[1-9]\d*$/.test(port) && 1 <= 1 * port && 1 * port <= 65535)){ return false } 提示文案: 您的端口不符合范围:0-65535 PS:下面看下JavaScript...
由于闰年的存在,使得日期的校验正则变得比较复杂。 先来考察一下日期的有效范围以及什么是闰年。 2 日期的规则 2.1 日期的有效范围 对于日期的有效范围,不同的应用场景会有所不同。 MSDN中定义的DateTime对象的...
JavaScript使用正则表达式进行验证
正则表达式-JavaScript字符校验方法
要匹配“toon”,使用“tn”正则表达式。这里不能使用方扩号,因为方括号只答应匹配单个字符;这里必须使用圆括号“”。圆括号还可以用来分组,具体请参见后面介绍。1.4表示匹配次数的符号表一显示了表示匹配次数的...
Javascript正则表达式校验共7页.pdf.zip
正则表达式就是专门为了校验数据而产生的一个语法,除了可以校验数据,还可以提取一些想要的固定模式数据,还可以替换数据 – 替换字符串(正则表达式主要用于字符串的处理 ) 正则表达式就是一个模式,可以用来校验...
JAVASCRIPT常用格式验证 数据安全验证之正则表达式 大全.rar