[英]Using preg_match to validate a string format
我有一個帶有銷售訂單號輸入的html表單,該訂單的格式應為K1234 / 5678。 它應始終以字母K開頭,然后是4個數字,一個/,然后是另一組4個數字。
我正在嘗試使用preg_match驗證格式,但是我迷失了preg_match的語法。 從http://php.net/manual/en/function.preg-match.php開始,我已經接近了。 使用以下代碼,我可以驗證它是否包含至少1個字母,一些數字和至少1個非字母數字值。
$so= $_POST['so'];
if (preg_match(""/^(?=.*[a-z]{1})(?=.*[0-9]{4})(?=.*[^a-z0-9]{1})/i", $so))
{
print $so;
}
正確的語法是什么? preg_match甚至是最好的方法嗎?
嘗試這個:
preg_match("#^K[0-9]{4}/[0-9]{4}$#i", $so)
說明:
#
字符是正則表達式定界符-它們指示模式的開始/結束。 ^
和$
表示字符串的開頭和結尾-這意味着只有在字符串中唯一的銷售訂單號時,該字符串才會匹配。 字母K
表示與該字母匹配, [0-9]{4}
表示與一個數字精確匹配4次。 最后的i
表示不區分大小寫的匹配K
將匹配“ K”或“ k”。
在開發正則表達式時,我經常使用正則表達式測試器-這些測試器可讓您輸入數據並嘗試各種不同的操作來完善正則表達式。 Google PHP正則表達式測試器 ,可找到工具列表。 另外,在http://www.regular-expressions.info/上有對正則表達式的非常完整的參考。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.