簡體   English   中英

使用正則表達式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM