close

1.密碼: 匹配6~12字元 && 至少一個數字 && 至少一個英文(大小寫通用)

>> /^(?=^.{6,12}$)((?=.*[0-9])(?=.*[a-z|A-Z]))^.*$/

 

 

推薦 : 線上測試正則表達式的網站 , 並且還告訴你配對到的結果 , 可以先在這個網站來測試你的正則表示法

 

 

 

需要被脫逸的符號 :

 

\ : 可以脫逸字元

 

[ : ──┐ 

          ──>[xyz] 比對中括孤內的任一個字元 , 但不會將配對到的字串存入RegExp變數中

] : ──┘

 

( : ──┐

          ──>合起來 (x) 比對x並將符合的部份存入一個變數, /(a*) and (b*)/ 可以對 ‘aaa and bb’ 中的’aaa’和’bb’,

) : ──┘      並將這兩個比對得到的字串設定至數字 RegExp.$1 和 RegExp.$2

 

. : 比對任何一個字元 , 但換行符號不算

 

^ : 啟始位置, \A 亦是

 

$ : 結束位置, \z 亦是

 

* : 比對前一個字元 , 零次或更多次, 等同{0,}

 

? : 比對前一個字元 , 零次或一次 , 等同{0,1}

 

+ : 比對前一個字元 , 一次或更多次 , 等同 {1,}

 

| : 或者 , 等於OR , 邏輯運算子(Logical Operators)

 

符號對照 :

\b   匹配一單詞(限英文)
如: '/\bweb\b/',
可匹配'xxx web XXX.'
不能匹配'xxx website XXX.'
\d [0-9] 0~9(數字)
\D [^0-9]或[^\d]  非數字
\l [a-z] 小寫英文
\L [^a-z] 非小寫英文
\u [A-Z] 大寫英文
\U [^A-Z] 非大寫英文
  [0-9a-zA-Z] 數字跟英文
\n   比對換行符號
\r   比對carriage return
\s [\f\n\r\t\v]

比對任一個空白字元

(White space character)

\S [^ \f\n\r\t\v] 比對任一個非空白字元
\t   比對字位字元(Tab)
\v   比對垂直定位字元(Vertical tab)
\w [A-Za-z0-9_] 比對數字、字母字元或底線
\W [^A-Za-z0-9_] 比對非數字、字母字元或底線

                                                      

比對方式 :

g 全域比對(Global match)
i 忽略大小寫(Ignore case)
gi 全域比對並忽略大小寫

 

 

語法結構 :

php : preg_match(string $pattern , string $subject)

示範: 

 
if ( preg_match('/^\d+$/', '123456') ) {
    echo '這是一串數字' ;
} else {
    echo '這不是一串純數字' ;
}

 

一些範例 :

 1. 一網址取 domain出來

    preg_match('#^(?:https?://)?([^/]+)#i',
        'https://www.domain.net/index.html', $matches);
    $host = $matches[1];
    print_r($host);exit;

數量 : 不能為0的正整數

 

/^[1-9]\d*$/

 

        [1-9] : 開頭要1~9

 

        \d* : 0~9的數字出現 0個或多個

 

 

 

價格 :  0 或是正整數

 

/^(0|[1-9]\d*)$/

 

        0 : 零

 

        | : 或者

 

        [1-9]\d* : 正整數

 

 

 

中文姓名 : 檢查中文字2~5個字

 

javascript : /^[\u4e00-\u9fa5]{2,5}$/

 

註 : 中文的正則, 如果把javascript語法搬到php會出現

 

Warning : preg_match()[function.preg-match] : Compilation failed : PCRE does not support \L , \I , \N , \U or \u at offset 9  的錯誤

 

               解決方法 :

 

               將\u改成\x , 並且將後面的中文代碼用{ } 括起來 , 在表示法最後的斜線後加一個u

 

php : /^[\x{4e00}-\x{9fa5}]{2,5}$/u

 

        [\x{4e00}-\x{9fa5}] : 繁體中文字

 

        {2,5} : 出現2~5次

 

 

 

email : email格式

 

/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/

 

 

 

password : 至少一個英文不分大小寫及一個數字 , 8~12位

 

/^(?!.*[^a-zA-Z0-9])(?=.*\d)(?=.*[a-zA-Z]).{8,12}$/

 

 

 

室內電話 : 離鳥區碼最多4碼 , 後面最少5碼最多8碼 . 例如 : 02-42365514

 

/^[0]{1}[0-9]{1,3}[-]{1}[0-9]{5,8}$/     (前面4碼後面8碼 , 會超過10碼條件 , 所以要再判斷一次 , 如下一行)

 

/^[0-9-]{10,11}$/      (共10或11碼)

 

要驗證兩次 , 如果下次有空的話再改成一行表示法 , 因為很久沒用這個 , 所以有點懶

 

 

 

地址 : 禁止中,英,數,減號( - )以外的字元,至少要連續中文4個字,至少一位數字,字元數共8~40位

 

/^(?!.*[^\u4e00-\u9fa5a-zA-Z0-9-])(?=.*[\u4e00-\u9fa5]{4,})(?=.*\d).{8,40}$/

 

 

 

網址 :

 

/((http[s]{0,1}|ftp):\/\/[a-zA-Z0-9\.\-]+\.([a-zA-Z]{2,4})(:\d+)?(\/[a-zA-Z0-9\.\-~!@#$%^&amp;*+?:_\/=<>]*)?)/g

 

網址二版(2013/01/21) :

 

((http[s]{0,1}|ftp):\/\/[a-zA-Z0-9\.\-\_\/]+\.([a-zA-Z]{2,4})(:\d+)?(\/[a-zA-Z0-9\.\-~!@#$%^&amp;*+?:_\/=<>]*)?)

 

 

 

正規取代驗證多餘空白:

 

^(.*[^\s])?\s+$    取代成 \1

 

  • ^開頭
  • $結尾
  • ( )裡的東西代表$1
  • [^\s] 結尾無空白
  • $1 可有可無
  • \s+結尾為空白

 

 

來源網址: http://italwaysrainonme.blogspot.tw/2013/01/blog-post.html

arrow
arrow
    文章標籤
    正規化都是一樣的 正規化
    全站熱搜
    創作者介紹

    deathfullove 發表在 痞客邦 留言(2) 人氣()