[英]Using regular expressions
這個正則表達式有什么問題? 我需要它才能使$ name成為字母編號。 現在它似乎根本沒有用。
if (!preg_match("/^[A-Za-z0-9]$/",$name)) {
$e[]="name must contain only letters or numbers";
}
你需要一個量詞,否則它只允許一個字符。 例如,要求必須有一個或多個字符使用+
:
/^[A-Za-z0-9]+$/
您的正則表達式僅描述一個單個字符。 使用像+
這樣的量詞允許[A-Za-z0-9]
重復一次或多次:
if (!preg_match("/^[A-Za-z0-9]+$/",$name))
或者你可以反轉你的表達式並查找不是字母數字的字符( [^A-Za-z0-9]
是[A-Za-z0-9]
的補碼):
if (preg_match("/[^A-Za-z0-9]/",$name))
不要忘記查看其他功能,這些功能可以執行您想要的功能,而不會產生正則表達式的開銷。 在這種情況下,您可以使用ctype_alnum
。
如果您不確切地知道表達式的作用,有時使用工具對其進行測試會有所幫助。 您可以嘗試使用Regex Coach: http : //www.weitz.de/regex-coach/ :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.