發佈日期: 發佈留言

正規表示式 (Regular Expression) 介紹

表單驗證常用到正規表示式,去檢查輸入的內容有沒有符合該欄位的規範,這篇帶你一步步認識!

{ 介紹 }

  • 基本規則:
    • /正規表示式/,用兩條斜線將正規表示式包起來。
    • /^正規表示式$/,更能嚴格規定每個字詞,要是沒加上^開頭、$結尾,會在有達成條件之後,剩下要輸入什麼都可以,就比較沒能完整驗證。
    • 正規表示式,就是驗證的輸入欄位內容格式。

{ 正規表示式 }

正規表示式解說用法
^比對內容的開始位置/^09/ : 內容要是09開頭
$比對內容的結束位置/com$/ : 內容要是com結尾
/^com$/ : 內容只能是com
字元
[A-Z]大寫英文字母/[A-Z]/ : 內容有大寫英文字母即可
[a-z]小寫英文字母/[a-z]/ : 內容有小寫英文字母即可
[0–9]數字 0 到 9/[0-9]/ : 內容有數字 0 到 9 即可
\d數字,等同 [0–9]/\d/ : 內容有數字即可
\D非數字/\D/ : 內容有非數字即可
\w數字字母與底線,等同 [A-Za-z0–9_]/\w/ : 內容有數字字母與底線即可
\W非數字字母與底線,等同 [^A-Za-z0–9_]/\W/ : 內容有非數字字母與底線即可
\s空白字元/\s/ : 內容有空白字元即可
\S非空白字元/\S/ : 內容有非空白字元即可
[]要有括弧內的任何字元/[happy]/ : 只能有 happy 字元
[^]不能有括弧內的任何字元/[happy]/ : 不能有 happy 字元
次數
*0 次以上/^v*$/ : 要包含 v 至少 0 個
+1 次以上/^v*$/ : 要包含 v 至少 1 個
?0 次或 1 次/^v?$/ : 要包含 v 至少 0 或 1 個
{x}x 次/^v{3}$/ : 要包含 v 至少 3 個
{y,}最少 y 次/^v{1,}$/ : 要包含 v 至少 1 個
{x,y}x 次到 y 次/^v{1,3}$/ : 要包含 v 至少 1 到 3 個

{ 常用的正則表示式 }

檢查項目範例
字串只能有英文與數字/^[a-zA-Z0-9]*$/
字串只能有英文/^[a-zA-Z]*$/
字串只能有數字/^[0-9]*$/
日期
(MM/DD/YYYY)
/^((0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01])[- /.](19|20)?[0-9]{2})*$/
日期
(YYYY/MM/DD)
#^((19|20)?[0-9]{2}[- /.](0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01]))*$#
西元生日
(YYYY-MM-DD)
/^\d{4}-\d{2}-\d{2}$/
身分證字號/^[A-Z]\d{9}$/
手機號碼/^09\d{8}$/
信用卡 /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6011[0-9]{12}|622((12[6-9]|1[3-9][0-9])|([2-8][0-9][0-9])|(9(([0-1][0-9])|(2[0-5]))))[0-9]{10}|64[4-9][0-9]{13}|65[0-9]{14}|3(?:0[0-5]|[68][0-9])[0-9]{11}|3[47][0-9]{13})*$/
簡易Email/^([a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4})*$/
簡易Email 2/^\w+((-\w+)|(.\w+))\@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+).[A-Za-z]+$/
Google mail/^.*@gmail.com$/
IP位址/^((?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))*$/
密碼
( 密碼長度必須有八碼,並且包含至少一個小寫字母與一個大寫字母和一個數字 )
/^(?=^.{8,}$)((?=.*[A-Za-z0-9])(?=.*[A-Z])(?=.*[a-z]))^.*$/
網址/^(((http|https|ftp):\/\/)?([[a-zA-Z0-9]\-\.])+(\.)([[a-zA-Z0-9]]){2,4}([[a-zA-Z0-9]\/+=%&_\.~?\-]*))*$/

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *