Javascript驗(yàn)證方法大全
更新時(shí)間:2015年09月21日 14:33:52 投稿:lijiao
這篇文章是集合了Javascript所有表單驗(yàn)證方法,非常全面,感興趣的小伙伴們可以參考一下
本文整理了關(guān)于Javascript表單驗(yàn)證的所有涉及到的,大家仔細(xì)閱讀一定會(huì)有所收獲的
//驗(yàn)證字符串非空
var Validator = {
VerityLib: {
IsNotEmpty: function (input) {
if (input != '') {
return true;
} else {
return false;
}
},
//驗(yàn)證數(shù)字(double類型) [可以包含負(fù)號(hào)和小數(shù)點(diǎn)]
IsNumber: function (input) {
var regex = /^-?\d+$|^(-?\d+)(\.\d+)?$/;
if (input.match(regex)) {
return true;
} else {
return false;
}
},
//驗(yàn)證整數(shù)
IsInteger: function (input) {
var regex = /^-?\d+$/;
if (input.match(regex)) {
return true;
} else {
return false;
}
},
//驗(yàn)證非負(fù)整數(shù)
IsIntegerNotNagtive: function (input) {
var regex = /^\d+$/;
if (input.match(regex)) {
return true;
} else {
return false;
}
},
//驗(yàn)證正整數(shù)
IsIntegerPositive: function (input) {
var regex = /^[0-9]*[1-9][0-9]*$/;
if (input.match(regex)) {
return true;
} else {
return false;
}
},
//驗(yàn)證小數(shù)
IsDecimal: function (input) {
var regex = /^([-+]?[1-9]\d*\.\d+|-?0\.\d*[1-9]\d*)$/;
if (input.match(regex)) {
return true;
} else {
return false;
}
},
//驗(yàn)證只包含英文字母
IsEnglishCharacter: function (input) {
var regex = /^[A-Za-z]+$/;
if (input.match(regex)) {
return true;
} else {
return false;
}
},
//驗(yàn)證只包含數(shù)字和英文字母
IsIntegerAndEnglishCharacter: function (input) {
var regex = /^[0-9A-Za-z]+$/;
if (input.match(regex)) {
return true;
} else {
return false;
}
},
//驗(yàn)證只包含漢字
IsChineseCharacter: function (input) {
var regex = /^[\u4e00-\u9fa5]+$/;
if (input.match(regex)) {
return true;
} else {
return false;
}
},
//驗(yàn)證數(shù)字長度范圍(數(shù)字前端的0計(jì)長度)[若要驗(yàn)證固定長度,可傳入相同的兩個(gè)長度數(shù)值]
IsIntegerLength: function (input, lengthBegin, lengthEnd) {
var pattern = '^\\d{' + lengthBegin + ',' + lengthEnd + '}$';
var regex = new RegExp(pattern);
if (input.match(regex)) {
return true;
} else {
return false;
}
},
//驗(yàn)證字符串包含內(nèi)容
IsStringInclude: function (input, withEnglishCharacter, withNumber, withChineseCharacter) {
if (!Boolean(withEnglishCharacter) && !Boolean(withNumber) && !Boolean(withChineseCharacter)) {
return false; //如果英文字母、數(shù)字和漢字都沒有,則返回false
}
var pattern = '^[';
if (Boolean(withEnglishCharacter)) {
pattern += 'a-zA-Z';
}
if (Boolean(withNumber)) {
pattern += '0-9';
}
if (Boolean(withChineseCharacter)) {
pattern += '\\u4E00-\\u9FA5';
}
pattern += ']+$';
var regex = new RegExp(pattern);
if (input.match(regex)) {
return true;
} else {
return false;
}
},
//驗(yàn)證字符串長度范圍 [若要驗(yàn)證固定長度,可傳入相同的兩個(gè)長度數(shù)值]
IsStringLength: function (input, LengthBegin, LengthEnd) {
var pattern = '^.{' + lengthBegin + ',' + lengthEnd + '}$';
var regex = new RegExp(pattern);
if (input.match(regex)) {
return true;
} else {
return false;
}
},
//驗(yàn)證字符串長度范圍(字符串內(nèi)只包含數(shù)字和/或英文字母)[若要驗(yàn)證固定長度,可傳入相同的兩個(gè)長度數(shù)值]
IsStringLengthOnlyNumberAndEnglishCharacter: function (input, LengthBegin, LengthEnd) {
var pattern = '^[0-9a-zA-z]{' + lengthBegin + ',' + lengthEnd + '}$';
var regex = new RegExp(pattern);
if (input.match(regex)) {
return true;
} else {
return false;
}
},
//驗(yàn)證字符串長度范圍 [若要驗(yàn)證固定長度,可傳入相同的兩個(gè)長度數(shù)值]
IsStringLengthByInclude: function (input, withEnglishCharacter, withNumber, withChineseCharacter, lengthBegin, lengthEnd) {
if (!withEnglishCharacter && !withNumber && !withChineseCharacter) {
return false; //如果英文字母、數(shù)字和漢字都沒有,則返回false
}
var pattern = '^[';
if (Boolean(withEnglishCharacter))
pattern += 'a-zA-Z';
if (Boolean(withNumber))
pattern += '0-9';
if (Boolean(withChineseCharacter))
pattern += '\\u4E00-\\u9FA5';
pattern += ']{' + lengthBegin + ',' + lengthEnd + '}$';
var regex = new RegExp(pattern);
if (input.match(regex)) {
return true;
} else {
return false;
}
},
//驗(yàn)證字符串字節(jié)數(shù)長度范圍 [若要驗(yàn)證固定長度,可傳入相同的兩個(gè)長度數(shù)值;每個(gè)漢字為兩個(gè)字節(jié)長度]
IsStringByteLength: function (input, lengthBegin, lengthEnd) {
var regex = /[^\x00-\xff]/g;
var byteLength = input.replace(regex, 'ok').length;
if (byteLength >= lengthBegin && byteLength <= lengthEnd) {
return true;
} else {
return false;
}
},
//驗(yàn)證日期 [只能驗(yàn)證日期,不能驗(yàn)證時(shí)間]
IsDateTime: function (input) {
if (Date.parse(input)) {
return true;
} else {
return false;
}
},
//驗(yàn)證固定電話號(hào)碼 [3位或4位區(qū)號(hào);區(qū)號(hào)可以用小括號(hào)括起來;區(qū)號(hào)可以省略;區(qū)號(hào)與本地號(hào)間可以用減號(hào)或空格隔開;可以有3位數(shù)的分機(jī)號(hào),分機(jī)號(hào)前要加減號(hào)]
IsTelePhoneNumber: function (input) {
var regex = /^(((0\d2|0\d{2})[- ]?)?\d{8}|((0\d3|0\d{3})[- ]?)?\d{7})(-\d{3})?$/;
if (input.match(regex)) {
return true;
} else {
return false;
}
},
//驗(yàn)證手機(jī)號(hào)碼 [可匹配"(+86)013325656352",括號(hào)可以省略,+號(hào)可以省略,(+86)可以省略,11位手機(jī)號(hào)前的0可以省略;11位手機(jī)號(hào)第二位數(shù)可以是3、4、5、8中的任意一個(gè)]
IsMobilePhoneNumber: function (input) {
var regex = /^((\+)?86|((\+)?86)?)0?1[3458]\d{9}$/;
if (input.match(regex)) {
return true;
} else {
return false;
}
},
//驗(yàn)證電話號(hào)碼(可以是固定電話號(hào)碼或手機(jī)號(hào)碼)
IsPhoneNumber: function (input) {
var regex = /^((\+)?86|((\+)?86)?)0?1[3458]\d{9}$|^(((0\d2|0\d{2})[- ]?)?\d{8}|((0\d3|0\d{3})[- ]?)?\d{7})(-\d{3})?$/;
if (input.match(regex)) {
return true;
} else {
return false;
}
},
//驗(yàn)證郵政編碼
IsZipCode: function (input) {
var regex = /^\d{6}$/;
if (input.match(regex)) {
return true;
} else {
return false;
}
},
//驗(yàn)證電子郵箱 [@字符前可以包含字母、數(shù)字、下劃線和點(diǎn)號(hào);@字符后可以包含字母、數(shù)字、下劃線和點(diǎn)號(hào);@字符后至少包含一個(gè)點(diǎn)號(hào)且點(diǎn)號(hào)不能是最后一個(gè)字符;最后一個(gè)點(diǎn)號(hào)后只能是字母或數(shù)字]
IsEmail: function (input) {
////郵箱名以數(shù)字或字母開頭;郵箱名可由字母、數(shù)字、點(diǎn)號(hào)、減號(hào)、下劃線組成;郵箱名(@前的字符)長度為3~18個(gè)字符;郵箱名不能以點(diǎn)號(hào)、減號(hào)或下劃線結(jié)尾;不能出現(xiàn)連續(xù)兩個(gè)或兩個(gè)以上的點(diǎn)號(hào)、減號(hào)。
//var regex = /^[a-zA-Z0-9]((?<!(\.\.|--))[a-zA-Z0-9\._-]){1,16}[a-zA-Z0-9]@([0-9a-zA-Z][0-9a-zA-Z-]{0,62}\.)+([0-9a-zA-Z][0-9a-zA-Z-]{0,62})\.?|((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$/;
var regex = /^([\w-\.]+)@([\w-\.]+)(\.[a-zA-Z0-9]+)$/;
if (input.match(regex)) {
return true;
} else {
return false;
}
},
//驗(yàn)證網(wǎng)址(可以匹配IPv4地址但沒對(duì)IPv4地址進(jìn)行格式驗(yàn)證;IPv6暫時(shí)沒做匹配)[允許省略"://";可以添加端口號(hào);允許層級(jí);允許傳參;域名中至少一個(gè)點(diǎn)號(hào)且此點(diǎn)號(hào)前要有內(nèi)容]
IsURL: function (input) {
////每級(jí)域名由字母、數(shù)字和減號(hào)構(gòu)成(第一個(gè)字母不能是減號(hào)),不區(qū)分大小寫,單個(gè)域長度不超過63,完整的域名全長不超過256個(gè)字符。在DNS系統(tǒng)中,全名是以一個(gè)點(diǎn)“.”來結(jié)束的,例如“www.nit.edu.cn.”。沒有最后的那個(gè)點(diǎn)則表示一個(gè)相對(duì)地址。
////沒有例如"http://"的前綴,沒有傳參的匹配
//var regex = /^([0-9a-zA-Z][0-9a-zA-Z-]{0,62}\.)+([0-9a-zA-Z][0-9a-zA-Z-]{0,62})\.?$/;
//var regex = /^(((file|gopher|news|nntp|telnet|http|ftp|https|ftps|sftp)://)|(www\.))+(([a-zA-Z0-9\._-]+\.[a-zA-Z]{2,6})|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(/[a-zA-Z0-9\&%_\./-~-]*)?$/;
var regex = /^([a-zA-Z]+:\/\/)?([\w-\.]+)(\.[a-zA-Z0-9]+)(:\d{0,5})?\/?([\w-\/]*)\.?([a-zA-Z]*)\??(([\w-]*=[\w%]*&?)*)$/;
if (input.match(regex)) {
return true;
} else {
return false;
}
},
//驗(yàn)證IPv4地址 [第一位和最后一位數(shù)字不能是0或255;允許用0補(bǔ)位]
IsIPv4: function (input) {
var regex = /^(25[0-4]|2[0-4]\d]|[01]?\d{2}|[1-9])\.(25[0-5]|2[0-4]\d]|[01]?\d?\d)\.(25[0-5]|2[0-4]\d]|[01]?\d?\d)\.(25[0-4]|2[0-4]\d]|[01]?\d{2}|[1-9])$/;
if (input.match(regex)) {
return true;
} else {
return false;
}
},
//驗(yàn)證IPv6地址 [可用于匹配任何一個(gè)合法的IPv6地址]
IsIPv6: function (input) {
var regex = /^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/;
if (input.match(regex)) {
return true;
} else {
return false;
}
},
//驗(yàn)證身份證號(hào) [可驗(yàn)證一代或二代身份證]
IsIDCard: function (input) {
input = input.toUpperCase();
//驗(yàn)證身份證號(hào)碼格式 [一代身份證號(hào)碼為15位的數(shù)字;二代身份證號(hào)碼為18位的數(shù)字或17位的數(shù)字加字母X]
if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/i.test(input))) {
return false;
}
//驗(yàn)證省份
var arrCity = { 11: '北京', 12: '天津', 13: '河北', 14: '山西', 15: '內(nèi)蒙古', 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: '臺(tái)灣', 81: '香港', 82: '澳門', 91: '國外' };
if (arrCity[parseInt(input.substr(0, 2))] == null) {
return false;
}
//驗(yàn)證出生日期
var regBirth, birthSplit, birth;
var len = input.length;
if (len == 15) {
regBirth = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/);
birthSplit = input.match(regBirth);
birth = new Date('19' + birthSplit[2] + '/' + birthSplit[3] + '/' + birthSplit[4]);
if (!(birth.getYear() == Number(birthSplit[2]) && (birth.getMonth() + 1) == Number(birthSplit[3]) && birth.getDate() == Number(birthSplit[4]))) {
return false;
}
return true;
}
else if (len == 18) {
regBirth = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/i);
birthSplit = input.match(regBirth);
birth = new Date(birthSplit[2] + '/' + birthSplit[3] + '/' + birthSplit[4]);
if (!(birth.getFullYear() == Number(birthSplit[2]) && (birth.getMonth() + 1) == Number(birthSplit[3]) && birth.getDate() == Number(birthSplit[4]))) {
return false;
}
//驗(yàn)證校驗(yàn)碼
var valnum;
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 += input.substr(i, 1) * arrInt[i];
}
valnum = arrCh[nTemp % 11];
if (valnum != input.substr(17, 1)) {
return false;
}
return true;
}
return false;
},
//驗(yàn)證經(jīng)度
IsLongitude: function (input) {
var regex = /^[-\+]?((1[0-7]\d{1}|0?\d{1,2})\.\d{1,5}|180\.0{1,5})$/;
if (input.match(regex)) {
return true;
} else {
return false;
}
},
//驗(yàn)證緯度
IsLatitude: function (input) {
var regex = /^[-\+]?([0-8]?\d{1}\.\d{1,5}|90\.0{1,5})$/;
if (input.match(regex)) {
return true;
} else {
return false;
}
}
}
}
這次整理的很全面,很詳細(xì),希望可以真正的幫助到大家。對(duì)大家熟練掌握J(rèn)avascript更有幫助。
您可能感興趣的文章:
- ASP動(dòng)態(tài)生成的javascript表單驗(yàn)證代碼
- 經(jīng)常用到的javascript驗(yàn)證函數(shù)收集
- 一句話JavaScript表單驗(yàn)證代碼
- javascript表單驗(yàn)證 - Parsley.js使用和配置
- javascript驗(yàn)證只能輸入數(shù)字和一個(gè)小數(shù)點(diǎn)示例
- javascript驗(yàn)證上傳文件的類型限制必須為某些格式
- javascript驗(yàn)證完全方法具體實(shí)現(xiàn)
- javascript表單驗(yàn)證使用示例(javascript驗(yàn)證郵箱)
- JavaScript驗(yàn)證圖片類型(擴(kuò)展名)的函數(shù)分享
- Javascript驗(yàn)證上傳圖片大小[前臺(tái)處理]
- JavaScript驗(yàn)證18位身份證號(hào)碼最后一位正確性的實(shí)現(xiàn)代碼
- JavaScript驗(yàn)證電子郵箱的函數(shù)
- Javascript表單驗(yàn)證要注意的事項(xiàng)
- Javascript驗(yàn)證用戶輸入U(xiǎn)RL地址是否為空及格式是否正確
- javascript表單驗(yàn)證和Window詳解
- javascript表單驗(yàn)證大全
相關(guān)文章
JavaScript瀏覽器對(duì)象模型BOM(BrowserObjectModel)實(shí)例詳解
這篇文章主要介紹了JavaScript瀏覽器對(duì)象模型BOM(BrowserObjectModel),結(jié)合實(shí)例形式較為詳細(xì)的分析了BOM模型的常用對(duì)象與相關(guān)使用技巧,需要的朋友可以參考下2016-11-11
js限制輸入框只能輸入數(shù)字(onkeyup觸發(fā))
這篇文章主要介紹了通過js實(shí)現(xiàn)input輸入框只能輸入數(shù)字的實(shí)現(xiàn)方法,主要是通過正則表達(dá)式替換實(shí)現(xiàn),需要的朋友可以參考下2018-09-09
基于JavaScript實(shí)現(xiàn)評(píng)論框展開和隱藏功能
本文通過實(shí)例代碼給大家介紹了基于JavaScript實(shí)現(xiàn)評(píng)論框展開和隱藏功能,感興趣的朋友參考下吧2017-08-08
uni-app實(shí)現(xiàn)數(shù)據(jù)下拉刷新功能實(shí)例
很多列表頁總數(shù)量很大,一次性查詢加載會(huì)導(dǎo)致頁面有很長時(shí)間的空白期,自然體驗(yàn)感極差,就會(huì)使用分頁加載數(shù)據(jù),這篇文章主要給大家介紹了關(guān)于uni-app實(shí)現(xiàn)數(shù)據(jù)下拉刷新功能實(shí)例的相關(guān)資料,需要的朋友可以參考下2022-08-08
JavaScript EasyPager 分頁函數(shù)
好久不寫js,手都有點(diǎn)生了。寫個(gè)小東西熱手。2011-05-05

