[PHP] 正規表示式 – 判斷日期

Home / PHP / [PHP] 正規表示式 – 判斷日期

最近在截取Doamin Registration的資料時,需要用來判刪回傳的時間是否符合日期格式,因此特別寫了一段如下,格式是適用YYYY-MM-DD:

實際運用如下:

另外也有寫了一個是適用多種日期格式的正則表示式,可以用來判斷是否符合

  • March 13, 2014
  • Oct. 11, 1940
  • July 1910
  • 10 September 2000
  • 01/17/2010
  • 20/11/1999

補充資料:

正規表示法的開始:/^
正規表示法的結束:$/
所有正規表示法規則都必須放到這兩者之間。
[A-Z] 表示英文大寫的文字格式,意味只可填寫 A 到 Z 之間的大寫字母。
d [0-9]示數字格式,意味只可填寫 0 – 9 的數字。
{9} 表示後面可有幾位數字。

舉例:[A-Z]{3}
以上表示要填三個大寫字母,並且只能填大寫字母 A 到 Z 之間,例如:ACE、AEZ、EDO……等,若後面不寫預設為 1 個。下列為常見的正規表示式:

中介字元 (metacharacter):
.:任何字元,換行除外
d:數字字元
w:文字字元
s:空格【空白字元(space)、tab、換行字元、return/enter】
^:字串需要的起始樣式
$:字串需要的結束樣式

量詞 (quantifier):
*:樣式必須出現0次以上(>0)
+:樣式必須出現1次以上(>1)
?:樣式必須出現0或1次(0 or 1)
{n}:樣式必須出現n次
{m,n}:樣式出現次數必須介於m到n之間(m~n)
(x|y):樣式是x或者是y

只能輸入數字:”^[0-9]*$”。
只能輸入 n 位的數字:”^d{n}$”。
只能輸入至少 n 位的數字:”^d{n,}$”。
只能輸入 m~n 位的數字:。”^d{m,n}$”。
只能輸入零和非零開頭的數字:”^(0|[1-9][0-9]*)$”。
只能輸入有兩位小數的正實數:”^[0-9]+(.[0-9]{2})?$”。
只能輸入有 1~3 位小數的正實數:”^[0-9]+(.[0-9]{1,3})?$”。
只能輸入非零的正整數:”^+?[1-9][0-9]*$”。
只能輸入非零的負整數:”^-[1-9][]0-9″*$。
只能輸入長度為 3 的字符:”^.{3}$”。
只能輸入由 26 個英文字母組成的字符串:”^[A-Za-z]+$”。
只能輸入由 26 個大寫英文字母組成的字符串:”^[A-Z]+$”。
只能輸入由 26 個小寫英文字母組成的字符串:”^[a-z]+$”。
只能輸入由數字和 26 個英文字母組成的字符串:”^[A-Za-z0-9]+$”。
只能輸入由數字、26 個英文字母或者下劃線組成的字符串:”^w+$”。
驗證用戶密碼:”^[a-zA-Z]w{5,17}$”。
正確格式為:以字母開頭,長度在 6~18 之間,只能包含字符、數字和下劃線。
驗證是否含有^%&』,;=?$”等字符:”[^%&』,;=?$x22]+”。
只能輸入漢字:”^[u4e00-u9fa5]{0,}$”。
驗證 Email 地址:”^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$”。
驗證 InternetURL:”^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$”。
驗證電話號碼:”^((d{3,4}-)|d{3.4}-)?d{7,8}$”
正確格式為:”XXX-XXXXXXX”、”XXXX-XXXXXXXX”、”XXX-XXXXXXX”、”XXX-XXXXXXXX”、”XXXXXXX”和”XXXXXXXX”。
驗證身份證號(15 位或 18 位數字):”^d{15}|d{18}$”。
驗證一年的 12 個月:”^(0?[1-9]|1[0-2])$”正確格式為:”01″~”09″和”1″~”12″。
驗證一個月的 31 天:”^((0?[1-9])|((1|2)[0-9])|30|31)$”正確格式為;”01″~”09″和”1″~”31″。

資料參考:正規表示式 Regular Expression

21791 全部 16 今日

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

*