ThinkPHP的自動驗證經常使用的正則

 

ThinkPHP的自動驗證經常使用的正則

 

ThinkPHP的自動驗證機制是爲了進行表單數據驗證,驗證能夠支持function、 callback、confirm、equal、unique和regex,這裏要講的是使用正則表達式進行驗證。正則表達式

通常咱們見的比較多的是設置規則爲require、email之類的,其實這些自己也是屬於正則表達式驗證方式,只是系統內置定義了一些經常使用的正則表達式而已。這些內置的正則表達式的定義能夠參考model類的regex方法,內置支持的正則定義包括:
require 字段必須、email 郵箱、url URL地址、currency 貨幣、number 數字、zip 郵編、integer 整數、double 浮點數、english 英文字母,可是並不侷限於這些正則規則的,咱們徹底能夠直接在驗證規則裏面使用正則表達式進行定義,這樣咱們能夠憑藉強大的正則表達式來進行表單字段驗 證,例如:ui

array(‘name’,’/^[a-z]\w{3,}$/i’,’名字不符合要求!’);
array(‘password’,’/^[a-z]\w{6,30}$/i’,’密碼不符合要求!’);
array(‘account’,’/^[A-Za-z]+$/’,’帳號必須使用英文!’);編碼

附上一些表單驗證中比較經常使用的正則表達式寫法:url

匹配中文字符的正則表達式: [\一-\龥]
匹配雙字節字符(包括漢字在內):[^\x00-\xff]
匹配Email地址的正則表達式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配網址URL的正則表達式:[a-zA-z]+://[^\s]*
匹配賬號是否合法(字母開頭,容許5-16字節,容許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
匹配國內電話號碼:\d{3}-\d{8}|\d{4}-\d{7}
匹配中國郵政編碼:[1-9]\d{5}(?!\d)
匹配ip地址:\d+\.\d+\.\d+\.\d+
匹配特定數字:
^[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)ip

匹配特定字符串:字符串

^[A-Za-z]+$  //匹配由26個英文字母組成的字符串
^[A-Z]+$  //匹配由26個英文字母的大寫組成的字符串
^[a-z]+$  //匹配由26個英文字母的小寫組成的字符串
^[A-Za-z0-9]+$  //匹配由io

相關文章
相關標籤/搜索