正規運算式 Regula Expression(JavaScript)
- 正規式總是以斜線起始和結束。
/express/ - 中介字元(metacharacter)
. 比對任何字元,換行(newline)字元除外。
\d 比對任和數字字元。
\w 比對任何文字字元。
\s 比對空格。(空白字元space,tab,換行字元,return/enter)
^ 字串需以樣式起始。(符合樣式的字串前,不能有其他文字。)
$ 字串需以樣式結束。(樣式需為字串的最後一個字元。)
Ex:正規式 敘述 範例 /^\d/ 字串起始處需有一個數字。 007, 2you /\d\d\d/ 要有3個數字。 007 /^jocker/ joker需為字串的起始字。 joker124324 /\d\d$/ 需以2個數字結尾。 joker124324, 007
- 量詞(quantifier)可以進一步把樣式調整得更好。量詞前為子樣式;量詞即應用在子樣式,並控制子式出現在樣式理的次數。
* 子樣式為選擇性(0次或多次),且可出現任意次數。
+ 子樣式為必須出現(1次或多次),且可出現任意次數。
? 子樣式為選擇性(0次或1次),若出現也只能出現一次。
{n}控制子樣式可以出線的字數。
( ) 歸類子樣式,就像平常區分數學算式。 - 使用正規運算式
function ValidateRegEx(regex, value) { ///<summary>正規表示式驗證字串</summary> ///<param name="regex" type="RegExp">正規表示是運算是。</param> ///<param name="value" type="String">驗證字串。</param> ///<returns>正確回傳true;錯誤回傳false。</returns> if (regex.test(value)) return true; //alert("正確"); else return false; //alert("不正確"); }
- {min, max}比對最少次數與最多次數。
Ex: 2008/12/12 和 08/12/12日期驗證,分別為年分4碼數字和2碼數字才正確。
/\d{2,4}\/\d{2}\/\d{2}/ <---此正規運算式會發生年分3碼也可以通過的情況......
/(\d{2}|\d{4})\/\d{2}\/\d{2}/ <---此正規運算式才能正確符合需求。
ps:正規運算式內如果有特殊字元則需要轉義,如要驗證日期字串內有'/'字元。
因為'/'正規運算式內的中介字元,則還需要再字元前加上'\'來轉義。 - 字元類組從集合中比對選用字元。
[CharacterClass] 字元類組是一組比對單一字元的正規式規則。
Ex:
/d[iu]g/ ---> dig, dug
/\$\d[\d\.]/ --->$5, $3.50 , $19.95 - 常用表示式:
regexlib很多正規表示式的網頁功用 表示式 範例 Email /^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/ test@test.test 台灣行動電話 /09\d{2}-\d{3}-\d{3}/ 0999-999-999 日期 /\d{4})\/\d{2}\/\d{2}/ 2008/01/01