1. 程式人生 > >js中的驗證方法

js中的驗證方法

$.validator.addMethod("regexp", function(value, element, params) {
	var pattern = params.pattern;
	var modifiers = params.modifiers;
	var regExp = new RegExp(pattern, modifiers);
	return regExp.test(value);
}, "輸入不符合要求");

$.validator.addMethod("price", function(value, element, params) {
	return /^[0-9]+(\.[0-9]{1,2})?$/.test(value);
}, "價格格式不正確");

// 判斷整數value是否等於0
$.validator.addMethod("isIntEqZero", function(value, element) {
	value = parseInt(value);
	return this.optional(element) || value == 0;
}, "整數必須為0");

// 判斷整數value是否大於0
$.validator.addMethod("isIntGtZero", function(value, element) {
	value = parseInt(value);
	return this.optional(element) || value > 0;
}, "整數必須大於0");

// 判斷整數value是否大於或等於0
$.validator.addMethod("isIntGteZero", function(value, element) {
	value = parseInt(value);
	return this.optional(element) || value >= 0;
}, "整數必須大於或等於0");

// 判斷整數value是否不等於0
$.validator.addMethod("isIntNEqZero", function(value, element) {
	value = parseInt(value);
	return this.optional(element) || value != 0;
}, "整數必須不等於0");

// 判斷整數value是否小於0
$.validator.addMethod("isIntLtZero", function(value, element) {
	value = parseInt(value);
	return this.optional(element) || value < 0;
}, "整數必須小於0");

// 判斷整數value是否小於或等於0
$.validator.addMethod("isIntLteZero", function(value, element) {
	value = parseInt(value);
	return this.optional(element) || value <= 0;
}, "整數必須小於或等於0");

// 判斷浮點數value是否等於0
$.validator.addMethod("isFloatEqZero", function(value, element) {
	value = parseFloat(value);
	return this.optional(element) || value == 0;
}, "浮點數必須為0");

// 判斷浮點數value是否大於0
$.validator.addMethod("isFloatGtZero", function(value, element) {
	value = parseFloat(value);
	return this.optional(element) || value > 0;
}, "浮點數必須大於0");

// 判斷浮點數value是否大於或等於0
$.validator.addMethod("isFloatGteZero", function(value, element) {
	value = parseFloat(value);
	return this.optional(element) || value >= 0;
}, "浮點數必須大於或等於0");

// 判斷浮點數value是否不等於0
$.validator.addMethod("isFloatNEqZero", function(value, element) {
	value = parseFloat(value);
	return this.optional(element) || value != 0;
}, "浮點數必須不等於0");

// 判斷浮點數value是否小於0
$.validator.addMethod("isFloatLtZero", function(value, element) {
	value = parseFloat(value);
	return this.optional(element) || value < 0;
}, "浮點數必須小於0");

// 判斷浮點數value是否小於或等於0
$.validator.addMethod("isFloatLteZero", function(value, element) {
	value = parseFloat(value);
	return this.optional(element) || value <= 0;
}, "浮點數必須小於或等於0");

// 判斷浮點型
$.validator.addMethod("isFloat", function(value, element) {
	return this.optional(element) || /^[-\+]?\d+(\.\d+)?$/.test(value);
}, "只能包含數字、小數點等字元");

// 匹配integer
$.validator.addMethod("isInteger", function(value, element) {
	return this.optional(element) || parseInt(value) == value;
}, "請輸入一個整數");

// 判斷數值型別,包括整數和浮點數
$.validator.addMethod("isNumber", function(value, element) {
	return this.optional(element) || /^[-\+]?\d+$/.test(value) || /^[-\+]?\d+(\.\d+)?$/.test(value);
}, "請輸入正確的數值");

// 只能輸入[0-9]數字
$.validator.addMethod("isDigits", function(value, element) {
	return this.optional(element) || /^\d+$/.test(value);
}, "只能輸入0-9數字");

// 判斷中文字元
$.validator.addMethod("isChinese", function(value, element) {
	return this.optional(element) || /^[\u0391-\uFFE5]+$/.test(value);
}, "只能包含中文字元。");

// 判斷英文字元
$.validator.addMethod("isEnglish", function(value, element) {
	return this.optional(element) || /^[A-Za-z]+$/.test(value);
}, "只能包含英文字元。");

// 手機號碼驗證
$.validator.addMethod("isMobile", function(value, element) {
	var length = value.length;
	return this.optional(element) || (length == 11 && /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/.test(value));
}, "請正確填寫您的手機號碼。");

// 電話號碼驗證
$.validator.addMethod("isPhone", function(value, element) {
	var tel = /^(\d{3,4}-?)?\d{7,9}$/g;
	return this.optional(element) || (tel.test(value));
}, "請正確填寫您的電話號碼。");

// 聯絡電話(手機/電話皆可)驗證
$.validator.addMethod("isTel", function(value, element) {
	var length = value.length;
	var mobile = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
	var tel = /^(\d{3,4}-?)?\d{7,9}$/g;
	return this.optional(element) || tel.test(value) || (length == 11 && mobile.test(value));
}, "請正確填寫您的聯絡方式");

// 匹配qq
$.validator.addMethod("isQq", function(value, element) {
	var qq = /^[1-9]\d{4,12}$/;
	return this.optional(element) || qq.test(value);
}, "請輸入正確的QQ號碼");

// 郵政編碼驗證
$.validator.addMethod("isZipCode", function(value, element) {
	var zip = /^[0-9]{6}$/;
	return this.optional(element) || (zip.test(value));
}, "請正確填寫您的郵政編碼。");

// 匹配密碼,以字母開頭,長度在6-12之間,只能包含字元、數字和下劃線。
$.validator.addMethod("isPwd", function(value, element) {
	return this.optional(element) || /^[a-zA-Z]\\w{6,12}$/.test(value);
}, "以字母開頭,長度在6-12之間,只能包含字元、數字和下劃線。");

// 身份證號碼驗證
$.validator.addMethod("isIdCardNo", function(value, element) {
	// var idCard = /^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\w)$/;
	return this.optional(element) || isIdCardNo(value);
}, "請輸入正確的身份證號碼。");

// IP地址驗證
$.validator
		.addMethod(
				"ip",
				function(value, element) {
					return this.optional(element)
							|| /^(([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.)(([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))\.){2}([1-9]|([1-9]\d)|(1\d\d)|(2([0-4]\d|5[0-5])))$/
									.test(value);
				}, "請填寫正確的IP地址。");

// 字元驗證,只能包含中文、英文、數字、下劃線等字元。
$.validator.addMethod("stringCheck", function(value, element) {
	return this.optional(element) || /^[a-zA-Z0-9\u4e00-\u9fa5-_]+$/.test(value);
}, "只能包含中文、英文、數字、下劃線等字元");

// 匹配english
$.validator.addMethod("isEnglish", function(value, element) {
	return this.optional(element) || /^[A-Za-z]+$/.test(value);
}, "請輸入英文");

// 匹配漢字
$.validator.addMethod("isChinese", function(value, element) {
	return this.optional(element) || /^[\u4e00-\u9fa5]+$/.test(value);
}, "請輸入漢字");

// 匹配中文(包括漢字和字元)
$.validator.addMethod("isChineseChar", function(value, element) {
	return this.optional(element) || /^[\u0391-\uFFE5]+$/.test(value);
}, "匹配中文(包括漢字和字元) ");

// 判斷是否為合法字元(a-zA-Z0-9-_)
$.validator.addMethod("isRightfulString", function(value, element) {
	return this.optional(element) || /^[A-Za-z0-9_-]+$/.test(value);
}, "判斷是否為合法字元(a-zA-Z0-9-_)");

// 判斷是否包含中英文特殊字元,除英文"-_"字元外
$.validator
		.addMethod(
				"isContainsSpecialChar",
				function(value, element) {
					var reg = RegExp(/[(\ )(\`)(\~)(\!)(\@)(\#)(\$)(\%)(\^)(\&)(\*)(\()(\))(\+)(\=)(\|)(\{)(\})(\')(\:)(\;)(\')(',)(\[)(\])(\.)(\<)(\>)(\/)(\?)(\~)(\!)(\@)(\#)(\¥)(\%)(\…)(\&)(\*)(\()(\))(\—)(\+)(\|)(\{)(\})(\【)(\】)(\‘)(\;)(\:)(\”)(\“)(\’)(\。)(\,)(\、)(\?)]+/);
					return this.optional(element) || !reg.test(value);
				}, "含有中英文特殊字元");

// 身份證號碼的驗證規則
function isIdCardNo(num) {
	// if (isNaN(num)) {alert("輸入的不是數字!"); return false;}
	var len = num.length, re;
	if (len == 15)
		re = new RegExp(/^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{2})(\w)$/);
	else if (len == 18)
		re = new RegExp(/^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\w)$/);
	else {
		// alert("輸入的數字位數不對。");
		return false;
	}
	var a = num.match(re);
	if (a != null) {
		if (len == 15) {
			var D = new Date("19" + a[3] + "/" + a[4] + "/" + a[5]);
			var B = D.getYear() == a[3] && (D.getMonth() + 1) == a[4] && D.getDate() == a[5];
		} else {
			var D = new Date(a[3] + "/" + a[4] + "/" + a[5]);
			var B = D.getFullYear() == a[3] && (D.getMonth() + 1) == a[4] && D.getDate() == a[5];
		}
		if (!B) {
			// alert("輸入的身份證號 "+ a[0] +" 裡出生日期不對。");
			return false;
		}
	}
	if (!re.test(num)) {
		// alert("身份證最後一位只能是數字和字母。");
		return false;
	}
	return true;
}

// ----- https://gist.github.com/lyhapple/5696861 -----

$.validator.addMethod("numberName", function(value, element) {
	return this.optional(element) || /^[0-9]+$/.test(value);
}, "輸入的值只能是數字!");
//車輛容積
$.validator.addMethod("carVolume", function(value, element) {
	return this.optional(element) || /^[0-9]\d*(\.\d+)?$/.test(value);
}, "輸入的值只能是大於0的整數或小數!");
//車輛長度
$.validator.addMethod("carLength", function(value, element) {
	return this.optional(element) || /^[0-9]\d*(\.\d+)?$/.test(value);
}, "輸入的值只能是大於0的整數或小數!");

$.validator.addMethod("enString", function(value, element) {
	return this.optional(element) || /^[A-Za-z0-9]+$/.test(value);
}, "輸入的值只能包括英文字母、數字!");

$.validator.addMethod("enStringOnly", function(value, element) {
	return this.optional(element) || /^[A-Za-z]+$/.test(value);
}, "只接受英文字元!");

// 字元驗證
$.validator.addMethod("strings", function(value, element) {
	return this.optional(element) || /^[\u0391-\uFFE5\w]+$/.test(value);
}, "不允許包含特殊符號!");

// 選單資源管理URL驗證
$.validator.addMethod("menuUrl", function(value, element) {
	return this.optional(element) || /^(\/[A-Za-z0-9_\-\?%=\.]+)*\/?$/.test(value);
}, "格式不正確,應以 / 開始,包括英文字母、數字!");

$.validator.addMethod("filename", function(value, element) {
	return this.optional(element) || /^[A-Za-z0-9_\.]+$/.test(value);
}, "格式不正確,應由英文字母、數字,下劃線 和小數點組成!");

$.validator.addMethod("realDigits", function(value, element) {
	return this.optional(element) || /^([1-9](?:\d+|\d{1,3}(?:,\d{3})+)*)$/.test(value);
}, "證輸入正整數,不要以0開始!");

$.validator.addMethod("cnName", function(value, element) {
	return this.optional(element) || /^([a-zA-Z0-9\u4e00-\u9fa5]|[._]){3,50}$/.test(value);
}, "應由漢字,數字,字母或下劃線組成,3-20個字元!");

$.validator.addMethod("username", function(value, element) {
	return this.optional(element) || /^([a-zA-Z0-9\u4e00-\u9fa5]|[._]){3,15}$/.test(value);
}, "應由漢字,數字,字母或下劃線組成,3-15個字元!");

$.validator.addMethod("decimal", function(value, element) {
	var decimal = /^-?\d+(\.\d{1,2})?$/;
	return this.optional(element) || (decimal.test(value));
}, $.validator.format("小數位數不能超過兩位!"));


$.validator.addMethod("isMobile", function(value, element) {
	var length = value.length;
	var mobile = /^(13[0-9]{9})|(18[0-9]{9})|(14[0-9]{9})|(17[0-9]{9})|(15[0-9]{9})$/;
	return this.optional(element) || (length == 11 && mobile.test(value));
}, "請正確填寫您的手機號碼");
$.validator.addMethod("isCarnumber", function(value, element) {
	var car_number = /^[京津滬渝冀豫雲遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陝吉閩貴粵青藏川寧瓊使領A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9掛學警港澳]{1}$/;
	return this.optional(element) || (car_number.test(value));
}, "請正確填寫您的車牌號");
$.validator.addMethod("driverLicenseNumber", function(value, element) {
	var length = value.length;
	var driver_license_number = /^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/;
	return this.optional(element) ||(length == 15 || length == 18 || driver_license_number.test(value));
}, "請正確填寫駕駛證號碼");
$.validator.addMethod("veLiNumber", function(value, element) {
	var length = value.length;
	var vehicle_licence_number = /^[A-Z0-9]{17}$/;
	return this.optional(element) ||(length ==17 || vehicle_licence_number.test(value));
}, "請正確填寫行駛證號碼");
$.validator.addMethod("registerNo", function(value, element) {
	var length = value.length;
	var register_no = /^[A-Z0-9]{23}$/;
	return this.optional(element) ||(length ==23 || register_no.test(value));
}, "請正確填寫登記證號碼");
$.validator.addMethod("operCerNo", function(value, element) {
	var length = value.length;
	var operation_certificate_no = /^[0-9]{12}$/;
	return this.optional(element) ||(length ==12 || operation_certificate_no.test(value));
}, "請正確填寫營運證號碼");
$.validator.addMethod("driverName", function(value, element) {
	var driver_name_Ch = /^[\u4e00-\u9fa5]+$/;
	var driver_name_En = /^[a-zA-Z]+$/;
	return this.optional(element) || (driver_name_Ch.test(value)) || (driver_name_En.test(value));
}, "請正確填寫您的姓名");
$.validator.addMethod("realName", function(value, element) {
	var leng = value.length;
//	var real_name = /^[\u4e00-\u9fa5]{2,}$/;
//	var real_name = /^[\u4e00-\u9fa5]{2,}$/;
//	return this.optional(element) || (leng >=2 && real_name.test(value));
}, "請正確填寫真實姓名");
$.validator.addMethod("maxWeight", function(value, element) {
	var max_weight = /^([0-9].*)$/;
	return this.optional(element) || max_weight.test(value);
}, "請正確填寫車的載重");
$.validator.addMethod("license_no", function(value, element) {
	var leng = value.length;
	var license_no = /^(\d{15}$|^\d{18}$)$/;
	return this.optional(element) || (leng == 15  || length == 18 || license_no.test(value));
}, "請正確填寫您的營業執照號");

相關推薦

js方法

合並 一段 spl 刪除 元素 font 返回 splice ice Array數組操作  Array.slice() arrayObject.slice(start,end)//返回值:返回一個新的數組,包含從 start 到 end (不包括該元素)的 arra

jsapply方法的使用

school int 學生 blog .sh sch arr 實現 優雅 1、對象的繼承,一般的做法是復制:Object.extend prototype.js的實現方式是: 1 Object.extend = function(destination, source)

JS方法、對象方法、原型方法

script ava 返回 name clas func new 構造函數 對象方法 1、對象方法:包括構造函數中的方法以及構造函數原型上面的方法;2、類方法:其實這裏的類就是一個函數。在js中由於函數也是一個對象,所以可以為函數添加屬性以及方法,這種方法在node中用的比

交易驗證方法(加密策略)

其中 一個 nbsp 驗證 -- 成交 方案 bsp 均值 加密策略: 1、交易中是否 允許可自動轉賬 情形上而定,不建議自動轉,方案一:鎖死某個賬戶的轉出地址,在驗證完真實信息後——系統提供轉出地址(地址為3-5),不通的加密驗證地址正確後,隨機發送到其中的一個地

JSsort()方法原理及使用

。。 image 必須 .so bject 字母 RR array ray sort() 方法用於對數組的元素進行排序,並返回數組。默認排序順序是根據字符串UniCode碼。因為排序是按照字符串UniCode碼的順序進行排序的,所以首先應該把數組元素都轉化成字符串(如有必

原生jsslice()方法和splice()區別

ole pre 結束 兩個 object splice 區別 沒有 slice slice()方法和splice()方法都是原生js中對數組操作的方法。 slice(),返回一個新的數組,該方法可從已有的數組中返回選定的元素。例如:arrObject(start,end

JS陣列方法詳解

JS中陣列的方法有很多,但是自己一直沒有抽時間進行整理分類,故單獨寫一篇博文,對目前我所掌握的JS中陣列相關的方法進行整理,夯實一下自己的基礎。 我將陣列相關的方法分為兩類 1.方法會改變原陣列 相應的方法有:shift、unshift、pop、push、rev

js字串方法

字串方法: indexOf indexOf(substr[,start]) 返回 substr 在字串 str 中首次出現的位置,從 start 位置開始查詢,如果不存在,則返回 -1。不填start則從第0項開始查詢 substr傳入空字串 也是返回0 不會返回-1(原始碼規定

JSbind方法,apply方法,call方法的實現

先分析下3個方法的作用 改變this的指向。 傳入引數。 call apply返回函式結果, bind 返回新函式 我們先從call開始 改變this指向 首先我們知道,物件上的方法,在呼叫時,this是指向物件的。 ler 0 =

原聲JSindexOf()方法在陣列的應用一

定義和用法 indexOf() 方法可返回某個指定的字串值在字串中首次出現的位置。 提示和註釋 註釋:indexOf() 方法對大小寫敏感! 註釋:如果要檢索的字串值沒有出現,則該方法返回 -1。 註釋:字元位置是從 0 開

js常用方法集合

1、 var post = new Array(); post['class'] = '1'; post['type'] = '2'; post['id'] = '3'; var postjson = JSON.stringify(post); console.log(postjson);

JS陣列方法的底層實現

原始碼地址: https://github.com/v8/v8/blob/ad82a40509c5b5b4680d4299c8f08d6c6d31af3c/src/js/array.js 陣列變異方法(即改變原陣列):shift、unshift、splice、push、pop、sor

js新增方法

先定義,儘量定義在前面,否則頁面報錯,會提示undefined。 /** * 計算字串長度(一個漢字等同於一個英文字母) */ String.prototype.realLength1 = function() { return this.replace(/[^\x00-\xff]/g

JSonclick方法呼叫函式時如何傳遞物件引數

今天在拼接字串時加入了onclick事件出發的函式需要傳遞引數物件,結果遇到了一系列問題,特此記錄 我是想用ajax接收後臺傳遞的json資料,在成功的回撥函式裡拼接字串,然後替換文字。 第一次我是這樣拼接的 success : function(data){

js call() 方法和 apply() 方法用法總結

以前對js 的call() 和 apply() 方法的理解一直比較模糊,模稜兩可的狀態,今天閒著有空,在網上查找了相關資料做一下總結 1, 每個函式都包涵兩個非繼承而來的方法,call() 方法 和apply() 方法。 2,相同點兩個方法的作用都是一樣的。 都是在特定的作用域中呼叫

jsmap方法和forEach方法的區別

紅寶書中的定義: map():對陣列的每一項執行給定函式,返回每次函式呼叫的結果組成的陣列。 forEach():對陣列的每一項執行給定函式,無返回值。 forEach()程式碼如下: let arr = ['kebe','liyabin','wangmin']; arr.forEa

js-語法 jsslice方法(轉)

js中slice方法(轉) 1、String.slice(start,end)returns a string containing a slice, or substring, of string. It does not modify string。slice()返回一個子片段,對原先的strin

js 驗證 使用者名稱 密碼

參考網址 http://www.17sucai.com/preview/1149930/2018-04-14/upload/index.html 我的 html 頁面 <link href="./home/else3/css/fabu/home.css" type="text/

js函式,方法,事件對比區分

 有問題可以掃碼加我微信,有償解決問題。承接小程式開發。 微信小程式開發交流qq群   173683895  、 526474645 ; 正文: 1.函式和方法: 一個類有方法和屬性,也可以說它有成員函式和成員變數, 所以函式和方法之間概念是相同的:都是由若干語句組成

jsreplcae()方法全部替換

  <span class='left w510'><span id='abstract_2' style="display:none">&lt;br&gt;      該專案研究了氣候變化和人類活動對&lt;font col