ThinkPHP自帶的驗證規則


有時候驗證器不太好用,比如PHP的 is_int 無法驗證數字字符串,會返回bool(false),而  /^[1-9]\d*$/ 能精准驗證是否正整數,(當然PHP自帶的 filter_var 也會通過 ' 123' )所以從比較流行框架搬一些正則來做驗證器,正則才是最精准的驗證。

僅做筆記 - 自用

ThinkPHP內部的驗證規則:

<?php

$regex = array(
    'require'=> '/.+/', //匹配任意字符,除了空和斷行符
    'email' => '/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/',
    'phone' => '/^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/',//電話號碼
    'mobile' => '/^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$/',//手機號碼
    'url' => '/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/',//超鏈接
    'currency' => '/^\d+(\.\d+)?$/',//貨幣
    'number' => '/\d+$/',
    'qq' => '/^[1-9]\d{4,12}$/',
    'integer' => '/^[-\+]?\d+$/',//整數
    'double' => '/^[-\+]?\d+(\.\d+)?$/',//浮點數
    'english' => '/^[A-Za-z]+$/',//英文字符
    'birthday'=>'/^\d{4}\-\d{1,2}-\d{1,2}$/',//生日,雖然本人更喜歡strtotime驗證是否日期格式

);
[\u4e00-\u9fa5] //匹配中文字符的正則表達式
[^\x00-\xff] //匹配雙字節字符(包括漢字在內)
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* //匹配Email地址的正則表達式
[a-zA-z]+://[^\s]* //匹配網址URL的正則表達式
\d{3}-\d{8}|\d{4}-\d{7} //匹配國內電話號碼
[1-9]\d{5}(?!\d) //匹配中國郵政編碼
\d+\.\d+\.\d+\.\d+ //匹配ip地址
^[1-9]\d*$ //匹配正整數
^-[1-9]\d*$ //匹配負整數
^-?[1-9]\d*$ //匹配整數
^[1-9]\d*|0$ //匹配非負整數(正整數 + 0)
^-[1-9]\d*|0$ //匹配非正整數(負整數 + 0)
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ //匹配正浮點數
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ //匹配負浮點數
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ //匹配浮點數
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ //匹配非負浮點數(正浮點數 + 0)
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$ //匹配非正浮點數(負浮點數 + 0)
^[A-Za-z]+$ //匹配由26個英文字母組成的字符串
^[A-Z]+$ //匹配由26個英文字母的大寫組成的字符串
^[a-z]+$ //匹配由26個英文字母的小寫組成的字符串
^[A-Za-z0-9]+$  //匹配由數字和26個英文字母組成的字符串
^\w+$ //匹配由數字、26個英文字母或者下划線組成的字符串
[\u4e00-\u9fa5] //匹配中文字符的正則表達式
[^\x00-\xff] //匹配雙字節字符(包括漢字在內)
\n\s*\r //匹配空白行的正則表達式-可用於刪除空白行
^\s*|\s*$ //匹配首尾空白字符的正則表達式-可以用來刪除行首行尾的空白字符(包括空格、制表符、換頁符等等)-也可以使用trim函數
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* //匹配Email地址的正則表達式
[a-zA-z]+://[^\s]* //匹配網址URL的正則表達式
評注:表單驗證時很實用
\d{3}-\d{8}|\d{4}-\d{7} //匹配國內電話號碼-固定電話
[1-9][0-9]{4,} //騰訊QQ號從10000開始
[1-9]\d{5}(?!\d) //匹配中國郵政編碼
\d{15}|\d{18} //匹配身份證
\d+\.\d+\.\d+\.\d+ //匹配ip地址

用之前,請看懂!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM