當前位置:名人名言大全網 - 端午節短信 - Thinkphp驗證器正則化通用規則

Thinkphp驗證器正則化通用規則

ThinkPHP自動驗證中常用的規律性

壹般來說,我們經常設置要求和電子郵件等規則。實際上,這些規則也是正則表達式驗證方法,但壹些常用的正則表達式是在系統中定義的。這些內置正則表達式的定義可以參考model類的regex方法。內置支持的常規定義包括:

必填字段必須是電子郵件地址、url URL地址、貨幣貨幣、數字、郵政編碼、整數整數、雙浮點數和英文字母,但不限於這些常規規則。我們可以直接在驗證規則中定義它,這樣我們就可以使用強大的正則表達式來驗證表單字段,例如:

附上壹些常用於表單驗證的正則表達式:

匹配特定字符串:

預選賽

限定符用於指定正則表達式的給定組件必須出現多少次才能滿足匹配。有*或+或嗎?或{n}或{n,}或{n,m}。

正則表達式的限定符有:

ThinkPHP的自動驗證機制是驗證表單數據。驗證可以支持函數、回調、確認、相等、唯壹和正則表達式。我這裏要講的是用正則表達式來驗證。

特殊字符

許多元字符在匹配時需要特殊處理。要匹配這些特殊字符,您必須首先“轉義”這些字符,也就是說,將反斜杠字符\放在它們前面。下表列出了正則表達式中的特殊字符:

正則表達式描述了壹種字符串匹配模式,可用於檢查字符串是否包含特定子串、替換匹配的子串或從字符串中提取滿足特定條件的子串。

例如:

構造正則表達式的方法與創建數學表達式的方法相同。也就是說,可以使用各種元字符和運算符來組合小表達式以創建更大的表達式。正則表達式的組件可以是單個字符、壹組字符、壹系列字符、字符之間的選擇或所有這些組件的任意組合。

正則表達式是由普通字符(如字符A到Z)和特殊字符(稱為“元字符”)組成的文本模式。模式描述搜索文本時要匹配的壹個或多個字符串。作為模板,正則表達式將字符模式與搜索到的字符串進行匹配。

普通字符包括所有未明確指定為元字符的可打印和不可打印字符。這包括所有大寫和小寫字母、所有數字、所有標點符號和壹些其他符號。

非打印字符也可以是正則表達式的壹部分。下表列出了代表非打印字符的轉義序列:

所謂特殊字符就是具有特殊含義的字符,例如上面提到的runoo*b,它簡單地表示任何字符串的含義。如果妳想找到字符串中的*符號,妳需要對*進行轉義,即添加壹個:runo*ob來匹配它前面的runo ob。

許多元字符在匹配時需要特殊處理。要匹配這些特殊字符,您必須首先“轉義”這些字符,也就是說,將反斜杠字符\放在它們前面。下表列出了正則表達式中的特殊字符:

限定符用於指定正則表達式的給定組件必須出現多少次才能滿足匹配。有*或+或嗎?或{n}或{n,}或{n,m}。

正則表達式的限定符有:

由於在大型輸入文檔中章節號可能超過9個,因此您需要壹種處理兩位或三位章節號的方法。限定詞賦予妳這種能力。以下正則表達式匹配任意位數的章節標題:

請註意,限定符出現在範圍表達式之後。因此,它適用於整個表達式範圍,在這種情況下,只指定從0到9(包括0和9)的數字。

這裏沒有使用+限定詞,因為不需要在第二個位置或後面有壹個數字。也不用?字符,因為使用?將章節號限制為兩位數。您需要在章節和空格字符後至少匹配壹個數字。

如果您知道章節號限制為99章,您可以使用以下表達式指定至少壹個但最多兩個數字。

上述表達式的缺點是大於99的章節號仍然只匹配前兩位數字。另壹個缺點是第0章也將匹配。僅匹配兩位數的更好的表達式如下:

或者

*,+限定詞是貪婪的,因為它們將匹配盡可能多的單詞,只添加壹個?可以實現非貪婪匹配或最小匹配。

例如,您可以在HTML文檔中搜索包含在H1標記中的章節標題。您文檔中的文本如下:

& ltH1》第1章-正則表達式簡介

貪婪:以下表達式匹配小於符號(:之間的所有內容)。

非貪婪:如果您只需要匹配開始和結束H1標記,則以下非貪婪表達式只匹配

如果您只想匹配開始的H1標記,則表達式為:

通過*、+或?放在限定符之後?,表達式將從“貪婪”表達式轉換為“非貪婪”表達式或最小匹配。

定位符使您能夠將正則表達式固定在行首或行尾。它們還使您能夠創建出現在單詞內、單詞開頭或單詞結尾的正則表達式。

正則表達式的定位器有: