前言
在前端开发中通常会用到校验函数,检验是否为空、手机号格式、身份证格式等等。现按照用途分类整理出了30个常用的方法,在Vue中也可以使用,方法逻辑都是一样的。可以很大的提高开发效率。同时初学者也可以拿它用来学习JS的使用。
一.JS常用校验函数
1.1.检验是否为空(NULL/空串)
function checkNull(str){ if(str == null || str == ""){ return false; } return true; }
1.2校验是否为纯数字
function checkNum(num){ if(isNaN(num)){ return false; } return true; }
1.3校验是否为纯数字(正则)
function checkNum(num){ var re = /^[0-9]+.?[0-9]*$/; //判断字符串是否为数字 (判断正整数 /^[1-9]+[0-9]*]*$/) if (!re.test(num)){ return false; } return true; }
1.4.校验手机号
function checkPhone(phone){ //验证规则,第一位是【1】开头,第二位有【3,4,5,7,8】,第三位及以后可以是【0-9】 var reg = /^1[3|4|5|7|8][0-9]{9}$/; if(!reg.test(phone)){ return false; } return true; }
1.5.校验座机号
function checkTel(tel) { var reg = /^(\d3,4|\d{3,4}-)?\d{7,8}$/; if (!reg.test(tel)) { return false; } return true; }
1.6.校验IP
var checkIp = function(ip){ var reSpaceCheck = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/; if (reSpaceCheck.test(ip)){ ip.match(reSpaceCheck); if (RegExp.$1 <= 255 && RegExp.$1 >= 0 && RegExp.$2 <= 255 && RegExp.$2 >=0 &&RegExp.$3 <= 255 && RegExp.$3 >= 0 && RegExp.$4 <= 255 && RegExp.$4>=0){ return true; }else{ return false; } }else{ return false; } }
1.7.校验URL地址
function checkUrl(url) { var reg = /(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/; if (!reg.test(url)) { return false; } return true; } // 是否为网址 function IsURL(strUrl) { var regular = /^\b(((https?|ftp):\/\/)?[-a-z0-9]+(\.[-a-z0-9]+)*\.(?:com|edu|gov|int|mil|net|org|biz|info|name|museum|asia|coop|aero|[a-z][a-z]|((25[0-5])|(2[0-4]\d)|(1\d\d)|([1-9]\d)|\d))\b(\/[-a-z0-9_:\@&?=+,.!\/~%\$]*)?)$/i; if (regular.test(strUrl)) { return true; } else { return false; } }
1.8.校验身份证
function checkIdCard(idCard) { var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"} var iSum = 0; var info = ""; if (!/^\d{17}(\d|x)$/i.test(idCard)){ return false;//身份证长度或格式错误 } idCard = idCard.replace(/x$/i, "a"); if (aCity[parseInt(idCard.substr(0, 2))] == null){ return false;//身份证地区非法; } var sBirthday = idCard.substr(6, 4) + "-" + Number(idCard.substr(10, 2)) + "-" + Number(idCard.substr(12, 2)); var d = new Date(sBirthday.replace(/-/g, "/")); if (sBirthday != (d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate())){ return false;//身份证上的出生日期非法; } for (var i = 17; i >= 0; i--){ iSum += (Math.pow(2, i) % 11) * parseInt(idCard.charAt(17 - i), 11); } if (iSum % 11 != 1){ return false;//身份证号非法; } return true; }
1.9.校验日期
/* * 检验日期 * 格式为YYYY-MM-DD */ function checkDate(date) { var result = date.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)$))/); if (result == null) { return false; } return true; }
1.10.校验邮箱
function checkEmail(email){ var reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/; if(!reg.test(email)){ return false; } return true; }
1.11.校验金额
function checkMoney(money) { if (money == '') { return false; } money = money.replace(/(^\s*)|(\s*$)/g, ""); var reg = /^[0-9]*\.?[0-9]{0,2}$/; if (!checkNum(money)) { return false; } if (money.length > 3) { if (money.substr(0, 1) == "0") { if (money.substr(3, money.length).length > 2) { return false; } } } if(!reg.test(money)){ return false; } return true; }
1.12.校验是否为汉字
function checkChar(charValue) { var reg = /^[\u4e00-\u9fa5]{0,}$/; if(!reg.test(charValue)){ return false; } return true; }
1.13.检测密码强度
function checkPwd(str) { var nowLv = 0; if (str.length < 6) { return nowLv } ; if (/[0-9]/.test(str)) { nowLv++ } ; if (/[a-z]/.test(str)) { nowLv++ } ; if (/[A-Z]/.test(str)) { nowLv++ } ; if (/[\.|-|_]/.test(str)) { nowLv++ } ; return nowLv; } checkPwd('123') // 0 checkPwd('123ASHD') // 2 checkPwd('12asdASAD') // 3 checkPwd('123ASHD)(&!a_') // 4
1.14.校验url链接是否有效
function getUrlState(URL) { var suc = false; var xmlhttp = new ActiveXObject("microsoft.xmlhttp"); xmlhttp.Open("GET", URL, false); try { xmlhttp.Send(); } catch (e) { } finally { var result = xmlhttp.responseText; if (result) { if (xmlhttp.Status == 200) { suc = true; } else { suc = false; } } else { suc = false; } } return suc; }