正規運算式 Regula Expression(JavaScript)

  • 11241
  • 0
  • 2009-01-30

正規運算式 Regula Expression(JavaScript)

  1. 正規式總是以斜線起始和結束
    /express/
  2. 中介字元(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
  1. 量詞(quantifier)可以進一步把樣式調整得更好。量詞前為子樣式;量詞即應用在子樣式,並控制子式出現在樣式理的次數。
    *    子樣式為選擇性(0次或多次),且可出現任意次數。
    + 子樣式為必須出現(1次或多次),且可出現任意次數。
    ? 子樣式為選擇性(0次或1次),若出現也只能出現一次。
    {n}控制子樣式可以出線的字數。
    ( ) 歸類子樣式,就像平常區分數學算式。
  2. 使用正規運算式
    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("不正確");
    } 
  3. {min, max}比對最少次數與最多次數。
    Ex: 2008/12/1208/12/12日期驗證,分別為年分4碼數字和2碼數字才正確。
    /\d{2,4}\/\d{2}\/\d{2}/   <---此正規運算式會發生年分3碼也可以通過的情況......
    /(\d{2}|\d{4})\/\d{2}\/\d{2}/   <---此正規運算式才能正確符合需求。
    ps:正規運算式內如果有特殊字元則需要轉義,如要驗證日期字串內有'/'字元。
    因為'/'正規運算式內的中介字元,則還需要再字元前加上'\'來轉義。
  4. 字元類組從集合中比對選用字元。
    [CharacterClass] 字元類組是一組比對單一字元的正規式規則。
    Ex:
    /d[iu]g/  ---> dig, dug
    /\$\d[\d\.]/ --->$5, $3.50 , $19.95
  5. 常用表示式:
    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