常用JS验证函数总结_惠州计算机Javascript培训
作者:黄君发布时间:2020-12-23分类:计算机教程浏览:850
随着做项目数量的越来越越多,其中用到js的地方很多相同,这里自己整理了一些常用表单验证的js方法,虽然和其他js验证框架有一定的差距,但是毕竟是自己总结的一些东西,在此与纪录分享一下。
JS验证
/**
;* 2010-7-13
;* 贺; 臣
;* 情; 缘
;* js各种表单数据验证
;*/
/**************************************************************************************/
/*************************************数字的验证*****************************************/
/**************************************************************************************/
/**
;* 检查输入的一串字符是否全部是数字
;* 输入:str; 字符串
;* 返回:true 或 flase; true表示为数字
;*/
function checkNum(str){
;return str.match(/\D/) == null;
}
/**
;* 检查输入的一串字符是否为小数
;* 输入:str; 字符串
;* 返回:true 或 flase; true表示为小数
;*/
function checkDecimal(str){
;if (str.match(/^-?\d+(\.\d+)?$/g) == null) {
;;;;;return false;
;}
;else {
;;;;;return true;
;}
}
/**
;* 检查输入的一串字符是否为整型数据
;* 输入:str; 字符串
;* 返回:true 或 flase; true表示为小数
;*/
function checkInteger(str){
;if (str.match(/^[-+]?\d*$/) == null) {
;;;;;return false;
;}
;else {
;;;;;return true;
;}
}
/**************************************************************************************/
/*************************************字符的验证*****************************************/
/**************************************************************************************/
/**
;* 检查输入的一串字符是否是字符
;* 输入:str; 字符串
;* 返回:true 或 flase; true表示为全部为字符 不包含汉字
;*/
function checkStr(str){
;if (/[^\x00-\xff]/g.test(str)) {
;;;;;return false;
;}
;else {
;;;;;return true;
;}
}
/**
;* 检查输入的一串字符是否包含汉字
;* 输入:str; 字符串
;* 返回:true 或 flase; true表示包含汉字
;*/
function checkChinese(str){
;if (escape(str).indexOf("%u") != -1) {
;;;;;return true;
;}
;else {
;;;;;return false;
;}
}
/**
;* 检查输入的邮箱格式是否正确
;* 输入:str; 字符串
;* 返回:true 或 flase; true表示格式正确
;*/
function checkEmail(str){
;if (str.match(/[A-Za-z0-9_-]+[@](\S*)(net|com|cn|org|cc|tv|[0-9]{1,3})(\S*)/g) == null) {
;;;;;return false;
;}
;else {
;;;;;return true;
;}
}
/**
;* 检查输入的手机号码格式是否正确
;* 输入:str; 字符串
;* 返回:true 或 flase; true表示格式正确
;*/
function checkMobilePhone(str){
;if (str.match(/^(?:13\d|15[89])-?\d{5}(\d{3}|\*{3})$/) == null) {
;;;;;return false;
;}
;else {
;;;;;return true;
;}
}
/**
;* 检查输入的固定电话号码是否正确
;* 输入:str; 字符串
;* 返回:true 或 flase; true表示格式正确
;*/
function checkTelephone(str){
;if (str.match(/^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$/) == null) {
;;;;;return false;
;}
;else {
;;;;;return true;
;}
}
/**
;* 检查QQ的格式是否正确
;* 输入:str; 字符串
;*; 返回:true 或 flase; true表示格式正确
;*/
function checkQQ(str){
;if (str.match(/^\d{5,10}$/) == null) {
;;;;;return false;
;}
;else {
;;;;;return true;
;}
}
/**
;* 检查输入的身份证号是否正确
;* 输入:str; 字符串
;*; 返回:true 或 flase; true表示格式正确
;*/
function checkCard(str){
;//15位数身份证正则表达式
;var arg1 = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
;//18位数身份证正则表达式
;var arg2 = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[A-Z])$/;
;if (str.match(arg1) == null && str.match(arg2) == null) {
;;;;;return false;
;}
;else {
;;;;;return true;
;}
}
/**
;* 检查输入的ip地址是否正确
;* 输入:str; 字符串
;*; 返回:true 或 flase; true表示格式正确
;*/
function checkIP(str){
;var arg = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
;if (str.match(arg) == null) {
;;;;;return false;
;}
;else {
;;;;;return true;
;}
}
/**
;* 检查输入的URL地址是否正确
;* 输入:str; 字符串
;*; 返回:true 或 flase; true表示格式正确
;*/
function checkURL(str){
;if (str.match(/(http[s]?|ftp):\/\/[^\/\.]+?\..+\w$/i) == null) {
;;;;;return false
;}
;else {
;;;;;return true;
;}
}
/**
;* 检查输入的字符是否具有特殊字符
;* 输入:str; 字符串
;* 返回:true 或 flase; true表示包含特殊字符
;* 主要用于注册信息的时候验证
;*/
function checkQuote(str){
;var items = new Array("~", "`", "!", "@", "#", "$", "%", "^", "&", "*", "{", "}", "[", "]", "(", ")");
;items.push(":", ";", "'", "|", "\\", "<", ">", "?", "/", "<<", ">>", "||", "//");
;items.push("admin", "administrators", "administrator", "管理员", "系统管理员");
;items.push("select", "delete", "update", "insert", "create", "drop", "alter", "trancate");
;str = str.toLowerCase();
;for (var i = 0; i < items.length; i++) {
;;;;;if (str.indexOf(items[i]) >= 0) {
;return true;
;;;;;}
;}
;return false;
}
/**************************************************************************************/
/*************************************时间的验证*****************************************/
/**************************************************************************************/
/**
;* 检查日期格式是否正确
;* 输入:str; 字符串
;* 返回:true 或 flase; true表示格式正确
;* 注意:此处不能验证中文日期格式
;* 验证短日期(2007-06-05)
;*/
function checkDate(str){
;//var value=str.match(/((^((1[8-9]\d{2})|([2-9]\d{3}))(-)(10|12|0?[13578])(-)(3[01]|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))(-)(11|0?[469])(-)(30|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))(-)(0?2)(-)(2[0-8]|1[0-9]|0?[1-9])$)|(^([2468][048]00)(-)(0?2)(-)(29)$)|(^([3579][26]00)(-)(0?2)(-)(29)$)|(^([1][89][0][48])(-)(0?2)(-)(29)$)|(^([2-9][0-9][0][48])(-)(0?2)(-)(29)$)|(^([1][89][2468][048])(-)(0?2)(-)(29)$)|(^([2-9][0-9][2468][048])(-)(0?2)(-)(29)$)|(^([1][89][13579][26])(-)(0?2)(-)(29)$)|(^([2-9][0-9][13579][26])(-)(0?2)(-)(29)$))/);
;var value = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
;if (value == null) {
;;;;;return false;
;}
;else {
;;;;;var date = new Date(value[1], value[3] - 1, value[4]);
;;;;;return (date.getFullYear() == value[1] && (date.getMonth() + 1) == value[3] && date.getDate() == value[4]);
;}
}
/**
;* 检查时间格式是否正确
;* 输入:str; 字符串
;* 返回:true 或 flase; true表示格式正确
;* 验证时间(10:57:10)
;*/
function checkTime(str){
;var value = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/)
;if (value == null) {
;;;;;return false;
;}
;else {
;;;;;if (value[1] > 24 || value[3] > 60 || value[4] > 60) {
;return false
;;;;;}
;;;;;else {
;return true;
;;;;;}
;}
}
/**
;* 检查全日期时间格式是否正确
;* 输入:str; 字符串
;* 返回:true 或 flase; true表示格式正确
;* (2007-06-05 10:57:10)
;*/
function checkFullTime(str){
;//var value = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/);
;var value = str.match(/^(?:19|20)[0-9][0-9]-(?:(?:0[1-9])|(?:1[0-2]))-(?:(?:[0-2][1-9])|(?:[1-3][0-1])) (?:(?:[0-2][0-3])|(?:[0-1][0-9])):[0-5][0-9]:[0-5][0-9]$/);
;if (value == null) {
;;;;;return false;
;}
;else {
;;;;;//var date = new Date(checkFullTime[1], checkFullTime[3] - 1, checkFullTime[4], checkFullTime[5], checkFullTime[6], checkFullTime[7]);
;;;;;//return (date.getFullYear() == value[1] && (date.getMonth() + 1) == value[3] && date.getDate() == value[4] && date.getHours() == value[5] && date.getMinutes() == value[6] && date.getSeconds() == value[7]);
;;;;;return true;
;}
;
}
/**************************************************************************************/
/************************************身份证号码的验证*************************************/
/**************************************************************************************/
/**;
;* 身份证15位编码规则:dddddd yymmdd xx p
;* dddddd:地区码
;* yymmdd: 出生年月日
;* xx: 顺序类编码,无法确定
;* p: 性别,奇数为男,偶数为女
;* <p />
;* 身份证18位编码规则:dddddd yyyymmdd xxx y
;* dddddd:地区码
;* yyyymmdd: 出生年月日
;* xxx:顺序类编码,无法确定,奇数为男,偶数为女
;* y: 校验码,该位数值可通过前17位计算获得
;* <p />
;* 18位号码加权因子为(从右到左) Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2,1 ]
;* 验证位 Y = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ]
;* 校验位计算公式:Y_P = mod( ∑(Ai×Wi),11 )
;* i为身份证号码从右往左数的 2...18 位; Y_P为脚丫校验码所在校验码数组位置
;*
;*/
var Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1];// 加权因子
var ValideCode = [1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2];// 身份证验证位值.10代表X
function IdCardValidate(idCard){
;idCard = trim(idCard.replace(/ /g, ""));
;if (idCard.length == 15) {
;;;;;return isValidityBrithBy15IdCard(idCard);
;}
;else
;;;;;if (idCard.length == 18) {
;var a_idCard = idCard.split("");// 得到身份证数组
;if (isValidityBrithBy18IdCard(idCard) && isTrueValidateCodeBy18IdCard(a_idCard)) {
;;;;;return true;
;}
;else {
;;;;;return false;
;}
;;;;;}
;;;;;else {
;return false;
;;;;;}
}
/**;
;* 判断身份证号码为18位时最后的验证位是否正确
;* @param a_idCard 身份证号码数组
;* @return
;*/
function isTrueValidateCodeBy18IdCard(a_idCard){
;var sum = 0; // 声明加权求和变量
;if (a_idCard[17].toLowerCase() == 'x') {
;;;;;a_idCard[17] = 10;// 将最后位为x的验证码替换为10方便后续操作
;}
;for (var i = 0; i < 17; i++) {
;;;;;sum += Wi[i] * a_idCard[i];// 加权求和
;}
;valCodePosition = sum % 11;// 得到验证码所位置
;if (a_idCard[17] == ValideCode[valCodePosition]) {
;;;;;return true;
;}
;else {
;;;;;return false;
;}
}
/**;
;* 通过身份证判断是男是女
;* @param idCard 15/18位身份证号码
;* @return 'female'-女、'male'-男
;*/
function maleOrFemalByIdCard(idCard){
;idCard = trim(idCard.replace(/ /g, ""));// 对身份证号码做处理。包括字符间有空格。
;if (idCard.length == 15) {
;;;;;if (idCard.substring(14, 15) % 2 == 0) {
;return 'female';
;;;;;}
;;;;;else {
;return 'male';
;;;;;}
;}
;else
;;;;;if (idCard.length == 18) {
;if (idCard.substring(14, 17) % 2 == 0) {
;;;;;return 'female';
;}
;else {
;;;;;return 'male';
;}
;;;;;}
;;;;;else {
;return null;
;;;;;}
}
/**;
;* 验证18位数身份证号码中的生日是否是有效生日
;* @param idCard 18位书身份证字符串
;* @return
;*/
function isValidityBrithBy18IdCard(idCard18){
;var year = idCard18.substring(6, 10);
;var month = idCard18.substring(10, 12);
;var day = idCard18.substring(12, 14);
;var temp_date = new Date(year, parseFloat(month) - 1, parseFloat(day));
;// 这里用getFullYear()获取年份,避免千年虫问题
;if (temp_date.getFullYear() != parseFloat(year) ||
;temp_date.getMonth() != parseFloat(month) - 1 ||
;temp_date.getDate() != parseFloat(day)) {
;;;;;return false;
;}
;else {
;;;;;return true;
;}
}
/**;
;* 验证15位数身份证号码中的生日是否是有效生日
;* @param idCard15 15位书身份证字符串
;* @return
;*/
function isValidityBrithBy15IdCard(idCard15){
;var year = idCard15.substring(6, 8);
;var month = idCard15.substring(8, 10);
;var day = idCard15.substring(10, 12);
;var temp_date = new Date(year, parseFloat(month) - 1, parseFloat(day));
;// 对于老身份证中的你年龄则不需考虑千年虫问题而使用getYear()方法
;if (temp_date.getYear() != parseFloat(year) ||
;temp_date.getMonth() != parseFloat(month) - 1 ||
;temp_date.getDate() != parseFloat(day)) {
;;;;;return false;
;}
;else {
;;;;;return true;
;}
}
//去掉字符串头尾空格
function trim(str){
;return str.replace(/(^\s*)|(\s*$)/g, "");
}
- 计算机教程排行
-
- 1汕头信息:“公共就业服务进校园”粤东专场在汕头大学举行|||计算机网络培训学校
- 2江门信息:构建和谐劳动关系优化提升营商环境江门市开展推进新时代和谐劳动关系创建活动|||广州学电脑培训学校
- 3汕头信息:2024年广东省公共就业服务进校园粤东片区专场活动诚邀各用人单位参会|||广州计算机编程培训
- 4广州中考成绩公布,高中阶段学校录取控制分数线公布,普高最低控制线502分
- 5清远信息:校企双向奔赴清远市人社部门携企赴省内外高校招才引智|||广州计算机编程培训
- 6江门信息:工伤保险缴费误区:最低工资非缴费基准,违规用人单位将面临法律风险!|||计算机软件培训学校
- 7惠州信息:2024年第一季度惠州人力资源市场供求情况|||北大青鸟计算机培训中心
- 8惠州信息:“惠州市就业驿站巡礼”之惠阳新圩站|||大学生计算机培训学校
- 9汕尾信息:世界技能大赛获奖选手全省巡回宣讲交流活动走进汕尾|||电脑计算机编程培训学校
- 标签列表
-
- Java (3694)
- 北大青鸟 (3713)
- 软件开发 (3613)
- JAVA (3413)
- UI设计入门 (2093)
- 惠州北大青鸟 (4375)
- 惠州IT培训 (2558)
- UI设计培训 (2090)
- 惠州UI设计培训 (2095)
- 惠州UI设计培训学校 (2090)
- 惠州计算机软件培训 (6260)
- 惠州计算件软件开发 (6260)
- 惠州计算机软件基础 (6261)
- 惠州计算机JAVA培训 (3574)
- 惠州计算机Java软件开发 (3620)
- 惠州计算机JAVA软件开发 (4645)
- 惠州计算机JAVA软件开发学校 (3338)
- 惠州计算机Java软件开发培训 (3338)
- 北大青鸟IT计算机学校 (5048)
- 北大青鸟IT软件学校 (5062)
- 北大青鸟IT学校 (5059)
- 惠州计算机UI设计软件开发 (2088)
- UI设计基础教程 (2088)
- UI设计是什么 (2088)
- UI设计教程 (2088)
- 网站分类
-
- 计算机教程
- 计算机入门
- 职业学校
- 新闻动态
- 专业课程
- 热门技术
- SEO
- 培训教程
- windows
- linux教程
- 系统集成
- 网站开发
- Html5
- 办公软件
- 师资力量
- 热点问答
- 联系我们
- 计算机学校
- 惠州计算机学校
- 河源计算机学校
- 广州计算机学校
- 深圳计算机学校
- 湛江计算机学校
- 佛山计算机学校
- IT计算机培训信息
- 设计专业
- UI
- 影视特效
- 游戏动漫设计
- Photoshop
- AI设计
- 软件教程
- Java技术
- C语言/C++语言培训
- C#
- Python技术
- PHP
- 数据库
- SQL Server
- 网络教程
- 网络安全
- 网络营销
- 软件专业
- 大数据专业
- 前端开发专业
- 软件测试专业
- Python专业
- 软件实施
- 珠海计算机学校
- 初中生学什么好
- 计算机认证
- 文章归档
-
- 2024年11月 (14)
- 2024年10月 (32)
- 2024年9月 (29)
- 2024年8月 (68)
- 2024年7月 (59)
- 2024年6月 (43)
- 2024年5月 (48)
- 2024年4月 (80)
- 2024年3月 (65)
- 2024年2月 (54)
- 2024年1月 (25)
- 2023年12月 (12)
- 2023年11月 (73)
- 2023年10月 (134)
- 2023年9月 (34)
- 2023年8月 (3)
- 2023年7月 (3)
- 2023年6月 (12)
- 2023年5月 (30)
- 2023年4月 (72)
- 2023年3月 (11)
- 2023年2月 (34)
- 2023年1月 (37)
- 2022年12月 (78)
- 2022年11月 (359)
- 2022年6月 (1193)
- 2022年5月 (570)
- 2022年4月 (1567)
- 2022年3月 (982)
- 2022年2月 (54)
- 2022年1月 (182)
- 2021年9月 (308)
- 2021年8月 (1704)
- 2021年7月 (2423)
- 2021年6月 (1806)
- 2021年5月 (1569)
- 2021年4月 (1380)
- 2021年3月 (1255)
- 2021年2月 (709)
- 2021年1月 (1521)
- 2020年12月 (3626)
- 2020年11月 (1646)
- 2020年10月 (1046)
- 2020年9月 (592)
- 最近发表
-
- 清远信息:2024年广清杯清远南粤家政技能大赛举行决赛|||计算机培训机构
- 汕尾信息:陈良川带队到汕尾技师学院调研|||计算机职业技能培训班
- 东莞信息:凤岗凤岗镇组织召开社保参保缴费及劳动用工政策宣讲会|||计算机软件培训学校
- 阳江信息:2024年度注册城乡规划师职业资格考试的合格标准是怎样的?|||计算机软件培训学校
- 阳江信息:职业技能提升补贴对象有哪些?|||大学生计算机培训学校
- 清远信息:清远市首家社保服务合作网点在清城区举办启动仪式|||计算机职业技能培训班
- 汕头信息:招聘658名中高端人才!2024年汕头市引进中高端人才专场招聘会举行|||北大青鸟计算机培训中心
- 东莞信息:广东省社保智能经办现场会在东莞召开|||大学生计算机培训学校
- 东莞信息:东坑镇举办2024年重点群体系列招聘活动|||计算机职业技能培训班
- 东莞信息:万江万江街道成功举办第四届粤菜师傅烹饪技能竞赛|||广州计算机编程培训