Javascript与正则表达式个人总结与收录--封装js验证类
2010-04-08 19:29
609 查看
总结了一些常见的表单验证类的操作,供以后备用。。。
作者:Rocky翔
出处:http://www.cnblogs.com/RockyMyx/
本文版权归作者和博客园共有,欢迎转载,但请在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
// $(function(){
$("input[name=c1]").click(function(){
$("div[class=diggit]").trigger('click');
$("textarea[class=comment_textarea]").val("好文要顶,推荐一下。。。");
PostComment();
});
$("input[name=c2]").click(function(){
$("textarea[class=comment_textarea]").val("一般一般,还需努力。。。");
PostComment();
});
$("input[name=c3]").click(function(){
$("textarea[class=comment_textarea]").val("实在没啥技术含量。。。");
PostComment();
});
$("input[name=c4]").click(function(){
$("textarea[class=comment_textarea]").val("我轻轻的来,正如我轻轻的离去。。。");
PostComment();
});
});
// ]]>
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; }
作者:Rocky翔
出处:http://www.cnblogs.com/RockyMyx/
本文版权归作者和博客园共有,欢迎转载,但请在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
// $(function(){
$("input[name=c1]").click(function(){
$("div[class=diggit]").trigger('click');
$("textarea[class=comment_textarea]").val("好文要顶,推荐一下。。。");
PostComment();
});
$("input[name=c2]").click(function(){
$("textarea[class=comment_textarea]").val("一般一般,还需努力。。。");
PostComment();
});
$("input[name=c3]").click(function(){
$("textarea[class=comment_textarea]").val("实在没啥技术含量。。。");
PostComment();
});
$("input[name=c4]").click(function(){
$("textarea[class=comment_textarea]").val("我轻轻的来,正如我轻轻的离去。。。");
PostComment();
});
});
// ]]>
相关文章推荐
- Javascript与正则表达式个人总结与收录--实战字符串
- Javascript与正则表达式个人总结与收录--基础篇
- Javascript与正则表达式个人总结与收录--高级篇
- Javascript与正则表达式个人总结与收录--索引及说明
- java正则表达式学习总结,以及和javascript正则表达式的区别
- java正则表达式学习总结,以及和javascript正则表达式的区别
- javascript复习以及正则表达式总结
- javascript之正则表达式总结
- JS(javascript)正则表达式整理文章(总结)
- java正则表达式学习总结,以及和javascript正则表达式的区别
- JavaScript学习总结(八)正则表达式
- C#和Javascript中 正则表达式使用的总结
- Php常用文件操作函数,正则表达式,个人学习总结
- PHP正则表达式个人笔记总结
- 涉及到正则表达式的个人总结
- java正则表达式学习总结,以及和javascript正则表达式的区别
- javascript正则表达式总结(test|match|search|replace|split|exec)
- javascript操作正则表达式对象的方法总结
- JavaScript总结(3)-javascript中应用正则表达式
- JavaScript中的正则表达式简明总结