文章收藏了在開發應用中經常會用到的Regex如有帳號由a~z的英文字母(不區分大小寫)、0~9的數字、點、減號或底線組成 、必須為數字、電子郵件格式、匹配24小時制時間等。
1.帳號由a~z的英文字母(不區分大小寫)、0~9的數字、點、減號或底線組成,長度為3~18個字元,例如:kyzy_001
^[a-za-z0-9.-_]{3,18}$
2.輸入框裡必須為數字
^[0-9]{1,}$
3.電子郵件格式
w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
4.要求文字框只能輸入最多兩位小數的數字
^[0-9]+.[0-9]{0,2}$
匹配24小時制時間
(?<hour>[0-2]{1}d{1}):(?<min>[1-6]{1}d{1})
匹配標準年月晶格式
^((((((0[48])|([13579][26])|([2468][048]))00)|([0-9][0-9]((0[48])|([13579][26])|([2468][048]))))-02-29)|(((000[1-9])|(00[1-9][0-9])|(0[1-9][0-9][0-9])|([1-9][0-9][0-9][0-9]))-((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30))|(((0[1-9])|(1[0-2]))-((0[1-9])|(1[0-9])|(2[0-8]))))))$
=================================================================================
^d{5}$
5 個數值數字,如美國郵遞區號。
^(d{5})|(d{5}-d{4}$
5 個數值數字或 5 個數字-短劃線-4 個數字。匹配 5 位元字格式的美國郵遞區號,或 5 位元字 + 4 位元字格式的美國郵遞區號。
^(d{5}(-d{4})?$
與前一個相同,但更有效。使用 ? 可使模式中的 4 位元字成為可選部分,而不是要求分別比較不同的兩個模式(通過另一種方式)。
^[+-]?d+(.d+)?$
匹配任意有可選符號的實數。
^[+-]?d*.?d*$
與上一個相同,但也匹配Null 字元串。
^(20|21|22|23|[01]d):[0-5]d$
匹配 24 小時制時間值。
/*.**/
匹配 c 語言風格的注釋 /* ... */
日期時間判斷Regex
這裡是判斷yyyy-mm-dd這種格式的,基本上把閏年和2月等的情況都考慮進去了。
^((((1[6-9]|[2-9]d)d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]d|3[01]))|(((1[6-9]|[2-9]d)d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]d|30))|(((1[6-9]|[2-9]d)d{2})-0?2-(0?[1-9]|1d|2[0-8]))|(((1[6-9]|[2-9]d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$
下面的是加了時間驗證的
^((((1[6-9]|[2-9]d)d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]d|3[01]))|(((1[6-9]|[2-9]d)d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]d|30))|(((1[6-9]|[2-9]d)d{2})-0?2-(0?[1-9]|1d|2[0-8]))|(((1[6-9]|[2-9]d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?d):[0-5]?d:[0-5]?d$