我一直在尋找2個小時,我仍然沒有得到它。 我需要評估帳戶名稱的輸入。它只能包含數字(0-9
),字母(a-z
和A-Z
)和點(.
)。php preg_match只有數字,字母和點
其他一切都是禁止的。所以,沒有下劃線(_
),加上(+
)等等。
有效的帳戶應該看起來像,例如:
john.green
luci.mayer89
admin
我試過很多的preg_match /正則表達式的例子,但我不明白這一點的工作。每當我做echo preg_match(...)
我得到1
爲true
。
$accountname = "+_#luke123*";
echo preg_match("/[a-z0-9.]/i", $accountname);
//--> gives back 1 as true
此外,這將是巨大的,以控制該帳戶名與至少2個字母或數字開頭,並以至少1字母或數字結尾 - 但我很遠,遠離這一點。
完美! thx的解釋!現在我明白了^和$的含義。 你能幫我解答第二部分嗎?字符串必須以2個或更多字母或數字開頭,並以1個或多個字母或數字結尾(例如,lu.b很好,但「a。」或「.abc」必須失敗)? – Lox
也許,這個'^ [a-z0-9] {2,} [a-z0-9。] * [a-z0-9] + $'(必須與'i'選項一起使用)就是你尋找?以2個或更多字母或數字開始,然後是任意數量的數字,字母或句點;並以一個或多個字母或數字結尾。 https://regex101.com/r/fL6qY7/3 –
我試過這個,它似乎工作:'^ [a-z0-9] {2} [a-z0-9。] {0,} [a-z0-9] {1} + $' – Lox