Javascript的表單驗證-揭開正則表達式的面紗
推薦閱讀:Javascript的表單驗證長度
在上篇文章給大家介紹了javascript的表單驗證-初識正則表達式,本文給大家介紹Javascript的表單驗證-揭開正則表達式的面紗,具體詳情請看全文。
用元字符匹配相應的字符類型
創(chuàng)建正則表達式有點像創(chuàng)建字符串字面量,只不過正則表達式出現(xiàn)在一對”/”里
正則表達式中會用到一級元字符,用于連接字母與數(shù)字
“.” 匹配任何字符,除換行符外
“\d”匹配任何數(shù)字字符
“\w”匹配任何字母或數(shù)字字符
“\s”匹配空格
“^”字符串需以模式起始
“$”字符串需以模式結束
元字符不只表示一個字面量字符,它乃是用于構建正則表達式的符號
例:這里有三個字符
“A”,”7”,”%”
/\w/可以匹配”A”,”7”
/^\d/可以匹配”7”
/\d/可以匹配”7”
/./可以匹配”A”,”7”,”%”
但是包含多個字符的字符串怎么辦?
“2nite”,”007”,”catch22”,
/^\d/可匹配到”2nite”,”007”(開頭都是數(shù)字)
/\d\d\d/可匹配”007”(一行中有3個數(shù)字)
/^cat/可匹配”catch22”(以cat字符開頭)
/\d\d$/可匹配”catch22”(必須以兩個數(shù)字來結尾)
例如:匹配美國郵編,郵編格式為#####-####
/^\d\d\d\d\d-\d\d\d\d$/
用限定符指定字符出現(xiàn)的次數(shù)
限定符用于控件子模式出現(xiàn)于正則表達式里的次數(shù)
限定符前為子模式,限定符即應用在子模式,并控制子模式出現(xiàn)在模式里的次數(shù)
“*”限定符前的子模式必須出現(xiàn)0次或多次
“+”限定符前的子模式必須出現(xiàn)1次或多次
“?”限定符前的子模式必須出現(xiàn)0次或1次
“{n}”限定符前的子模式必須恰好出現(xiàn)N次
“()”集合字符或/和元字符,成為子模式
同樣是以郵政編碼為例
/^\d{5}-\d{4}$/
可以看出,加上限定符的表達式比只有元字符的表達式更加的精準
/\w*/匹配任何字母數(shù)字字符,包括空字符串
/.+/匹配一個出現(xiàn)一次以上的字符串(用于匹配非非空的字符串)
/(Hot)??Donuts/可匹配出Hot或Donuts
*在正則表達式里想要匹配具有特殊意義的字符的時候,可以用反斜杠
例如匹配$:\$*
利用正則表達式驗證數(shù)據(jù)
JavaScript里的正則表達式由RegExp對象表示,其中包含使用正則表達式驗證數(shù)據(jù)的關鍵–test()方法,它檢查字符串里是否存在指定的模式
例:
var regex=/^\d{5}$/;//匹配5位數(shù)郵政編碼的正則表達式;
正則表達式對象字面量自動合建RegExp對象
if(!regex.test(inputFiled.value)) { //在正則表達式上調(diào)用text方法 //如果符合合正則表達式的要求,返回true //如果不符合正則表達式的要求,返回false }
代碼案例
接下來,寫一個專門用來驗證字符串格式的方法
//regex正則表達式 //inputStr需要驗證的字符串 //helpText提供信息提示的一個span標簽 //helpMessage提示信息內(nèi)容 // function validateRegExp(regex,inputStr,helpText,helpMessage) { if(!regex.test(inputStr)) { if(helpText!=null) helpText.innerHTML=helpMessage; return false; } else{ if(helpText!=null) helpText.innerHTML=""; } return true; } function validateDate(inputFild,helpText) { if(!validateNonEmpty(inputFild,helpText)//先檢查參數(shù)是非空的 { return false; } return validateRegExp(/^\d{2}\/\d{2}\/\d{4}$/,inputFild,helpText,"請輸入正確的日期格式");//調(diào)用正則驗證方法 }
好了,本文到此結束,感謝大家對腳本之家網(wǎng)站支持!
相關文章
JavaScript中關于for循環(huán)刪除數(shù)組元素內(nèi)容時出現(xiàn)的問題
昨天在用for循環(huán)進行數(shù)組去重的時候出現(xiàn)的問題小結,怎么解決這個問題呢,今天小編通過本文給大家講解下js循環(huán)刪除數(shù)組元素的方法,一起看看吧2016-11-11基于Bootstrap下拉框插件bootstrap-select使用方法詳解
這篇文章主要為大家詳細介紹了基于Bootstrap下拉框插件bootstrap-select的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-08-08JS實現(xiàn)點擊按鈕后框架內(nèi)載入不同網(wǎng)頁的方法
這篇文章主要介紹了JS實現(xiàn)點擊按鈕后框架內(nèi)載入不同網(wǎng)頁的方法,涉及javascript點擊按鈕載入頁面的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-05-05