常用 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表示为全部为字符 不包含汉字 */ function checkStr(str){ if (/[^\\x00-\\xff]/g.test(str)) { return false; } else { return true; } } /**//** * 检查输入的一串字符是否包含汉字 * 输入:str 字符串 * 返回:true 或 flase; true表示包含汉字 */ function IsChinese(str) { var reg=/^[\\u0391-\\uFFE5]+$/; return reg.test(str); } /**//** * 检查输入的邮箱格式是否正确 * 输入: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 checkMobile(v){ var a = /^((\\(\\d{3}\\))|(\\d{3}\\-))?13\\d{9}|14[57]\\d{8}|15\\d{9}|18\\d{9}$/ ; if( v.length!=11||!v.match(a) ) { alert("请输入正确的手机号码!"); } else{ ; } } /**//** * 检查输入的固定电话号码是否正确 * 输入: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; } } /**//** * 检查输入的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; }
三、验证日期
//| 日期有效性验证 //| 格式为:YYYY-MM-DD或YYYY/MM/DD function IsValidDate(DateStr){ var sDate=DateStr.replace(/(^\\s+|\\s+$)/g,'');//去两边空格; return true; } //如果格式满足YYYY-(/)MM-(/)DD或YYYY-(/)M-(/)DD或YYYY-(/)M-(/)D或YYYY-(/)MM-(/)D就替换为'' //数据库中,合法日期可以是:YYYY-MM/DD(2003-3/21),数据库会自动转换为YYYY-MM-DD格式 var s=sDate.replace(/[\\d]{ 4,4 }[\\-/]{1}[\\d]{1,2}[\\-/]{1}[\\d]{1,2}/g,''); if(s==''){//说明格式满足YYYY-MM-DD或YYYY-M-DD或YYYY-M-D或YYYY-MM-D var t=new Date(sDate.replace(/\\-/g,'/')); var ar=sDate.split(/[-/:]/); if(ar[0]!=t.getYear()||ar[1]!=t.getMonth()+1||ar[2]!=t.getDate()){//alert('错误的日期格式!格式为:YYYY-MM-DD或YYYY/MM/DD。注意闰年。'); return false; } }else{//alert('错误的日期格式!格式为:YYYY-MM-DD或YYYY/MM/DD。注意闰年。'); return false; } return true; } //| 日期时间有效性检查 //| 格式为:YYYY-MM-DD HH:MM:SS function CheckDateTime(str){ var reg=/^(\\d+)-(\\d{ 1,2})-(\\d{ 1,2})(\\d{ 1,2}):(\\d{1,2}):(\\d{1,2})$/; var r=str.match(reg); if(r==null) return false; r[2]=r[2]-1; var d= new Date(r[1],r[2],r[3],r[4],r[5],r[6]); if(d.getFullYear()!=r[1]) return false; if(d.getMonth()!=r[2]) return false; if(d.getDate()!=r[3]) return false; if(d.getHours()!=r[4]) return false; if(d.getMinutes()!=r[5]) return false; if(d.getSeconds()!=r[6]) return false; return true; }
卡法常用验证 ckl.js
// +---------------------------------------------------------------------- // | sunqiang // +---------------------------------------------------------------------- // | Copyright (c) 2013-2020 // +---------------------------------------------------------------------- // | Author: sunqiang <sqqsun@mcakeg.com> // +---------------------------------------------------------------------- var E = { /** * 设置COOKIE * @param cookieName * @param cookieValue * @param cookieTime * @param cookieDomain */ setCookie: function(cookieName, cookieValue ,cookieTime, cookieDomain) { var exp = new Date(); exp.setTime(exp.getTime() + cookieTime * 1000); if (cookieTime == 0) document.cookie = cookieName + "=" + encodeURI(cookieValue) + ";path=/;domain=" + cookieDomain + ";"; else document.cookie = cookieName + "=" + encodeURI(cookieValue) + ";expires=" + exp.toGMTString() + ";path=/;domain=" + cookieDomain + ";"; }, /** * 获得cookie * @param cookieName * @returns {null} */ getCookie: function(cookieName) { var strCookie = D.cookie; var arrCookie = strCookie.split("; "); var arrCookieCount = arrCookie.length; var arr,identifyContent = null; for(var i = 0; i < arrCookie.length ; i++){ arr = arrCookie[i].split("="); if(cookieName == arr[0]){ var arrStr = D.cookie.split("; "); identifyContent = decodeURIComponent(decodeURIComponent(arr[1])); break; } } arrCookie = null; if (identifyContent == null) return null; else return identifyContent; }, createGuid: function() { var guid = ""; for (var i = 1; i <= 32; i++){ var n = Math.floor(Math.random()*16.0).toString(16); guid += n; } return guid; }, /** * 判断在数组中是否含有给定的一个变量值 * 参数: * needle:需要查询的值 * haystack:被查询的数组 * 在haystack中查询needle是否存在,如果找到返回true,否则返回false。 * 此函数只能对字符和数字有效 * */ inArray: function(needle, haystack) { var t = false; $.each(haystack, function(k, v) { if (v == needle) { t = true; return false; } }); return t; }, /** * 检查参数是否为空 * @param val * @returns {boolean} */ empty: function( val ) { switch (typeof(val)){ case "string": return this.trim(val).length == 0 ? true : false; break; case "number": return val == 0; break; case "object": return val == null; break; case "array": return val.length == 0; break; default: return true; } }, isEmpty: function( val ) { return this.empty( val ); }, /** * 检查日期获取日期+时间或时间格式 * @param s * @returns {Array|{index: number, input: string}} */ isDate: function(s) { var reg= /^\d{4}-\d{2}-\d{2}$|^\d{4}-\d{2}-\d{2} \d{1,2}:\d{1,2}:\d{1,2}$|\d{1,2}:\d{1,2}:\d{1,2}$/; return reg.exec(s); }, /** * 匹配email * @param s * @returns {Array|{index: number, input: string}} */ isEmail: function(s) { var reg= /^[a-z0-9]([a-z0-9_\-\.]*)@([a-z0-9_\-\.]*)(\.[a-z]{2,3}(\.[a-z]{2}){0,2})$/i; return reg.exec(s); }, /** * 匹配数字(整数) * @param s * @returns {Array|{index: number, input: string}} */ isDigital: function(s) { var reg = /^\d+$/; return reg.exec(s); }, /** * 匹配数字(整数或小数) * @param s * @returns {Array|{index: number, input: string}} */ isNum: function(s) { var reg = /^\d+$|^\d+\.\d+$/; return reg.exec(s); }, /** * 匹配非负整数(正整数+0) * @param s * @returns {Array|{index: number, input: string}} */ isInt: function(s) { var reg = /^[0-9]\d*$/; return reg.exec(s); }, /** * 匹配小数 * @param s * @returns {Array|{index: number, input: string}} */ isFloat: function(s) { var reg = /^(\d+)(\.(\d{1,2}))$/; return reg.exec(s); }, /** * 匹配金额 * @param s * @returns {Array|{index: number, input: string}} */ isMoney: function(s) { var reg = /^(([1-9]\d*(,\d{3})*)|([0-9]\d*))(\.(\d{1,2}))?$/; return reg.exec(s); }, /** * 从字符串的两端删除空白字符和其他预定义字符 * @param s * @returns {*} */ trim: function(s) { return s.replace(/(^\s*)|(\s*$)/g, ""); }, /** * 匹配手机号码 * @param s * @returns {Array|{index: number, input: string}} */ isMobile: function(s) { var reg = /^(1[34578][0-9]{1})[0-9]{8}$/; return reg.exec(s); }, /** * 匹配电话号码 * @param s * @returns {Array|{index: number, input: string}} */ isPhone: function(s) { var reg = /^(0[0-9]{2,3}-)?([2-9][0-9]{6,7})+(-[0-9]{1,6})?$/; return reg.exec(s); }, /** * 匹配汉字 * @param s * @returns {Array|{index: number, input: string}} */ isChinese: function( s ) { var reg = /^[\u4e00-\u9fa5]+$/; return reg.exec(s) ; }, /** * 检查变量是否定义 * @param variable * @returns {boolean} */ isDefined: function( variable ) { if (typeof(variable) == 'undefined'){ return false; } else { return true; } }, /** * 比较日期先后 * @param startDate 开始日期 * @param endDate 结束日期 * @returns {boolean} */ dateCompare : function(sDate, eDate){ s = sDate.replace(/-/g,"/"); e = eDate.replace(/-/g,"/"); if (Date.parse(s) - Date.parse(e) > 0){ return false; } return true; }, /** * 检查参数长度 * @param val * @returns {number} */ len: function( val ) { var l = 0; var a = val.split(""); for (var i=0;i<a.length;i++) { if (a[i].charCodeAt(0)<299) { l++; } else { l+=2; } } return l; }, /** * ajax的post请求 * @param args */ ajax_post: function( args ) { var request_url = "http://218.244.146.56/api/" + args.action; if(args.access_token != undefined && args.access_token != null && args.access_token != "" ) { request_url = request_url + "/"+args.access_token; } $.ajax({ type: "POST", url: request_url, dataType: "JSON", data: args.params, success: function( o ) { eval(args.call + "(o)"); } }); } };
给心灵一个纯净空间,让思想,情感,飞扬!