回答
沒有內置過濾器。
你可能要考慮learning regular expressions,它們不是那不好。
$valid = (strlen($username) <= 30 && preg_match("#^[a-z0-9A-Z]+$#", $username));
考慮使用正則表達式中的量詞而不是使用'strlen()'。 – FtDRbwLXw6 2012-01-10 02:09:02
這有一些具體的事情沒有過濾器,但這個工程並有一個簡單的正則表達式:
function isValidUsername($username) {
return (strlen($username) <= 30) && (preg_match("/^[a-z0-9]+$/i", $username) == 1);
}
這裏是應該這樣做的功能。我建議花一些時間學習正則表達式的工作方式。它們是程序員工具箱中最強大(也是最有用)的工具之一。
更新:運用註釋分隔符的建議之上,並略微簡化我的功能:
更新2:添加了/ d模式修改,以確保$防止對\ n匹配。
function isValidUsername($name)
{
return preg_match("/^[a-zA-Z0-9]{1,30}$/D", $name);
}
PHP沒有內置任何內容來滿足這些要求。下面是你需要的正則表達式,但:
$valid = (bool)preg_match('/^[a-zA-Z0-9]{1,30}$/', $username);
我知道你沒有要求設計批評,但請你想一想,如果硬盤的用戶名是真正的必需品。如果沒有,請考慮使用電子郵件地址,因爲它們更方便用戶,而且無論如何您都可能會向用戶詢問該信息。
所以我會說... if($ _POST ['username'] == $ valid){echo「the username is valid」..。 ..。 。然後它會變成$用戶名? – Depetrify 2012-01-10 01:50:29
@Depetrify:不,如果你想檢查的用戶名是在$ _POST ['username']'中,你可以在上面的代碼中使用它而不是'$ username'。那麼'$ valid'可以是'TRUE'或'FALSE',你可以從那裏開始。 – FtDRbwLXw6 2012-01-10 02:06:30
- 1. 尋找一個特定的PHP框架
- 2. 尋找一個JQ過濾器基於一個嵌套屬性
- 3. 通過一系列的尋找一個特定的值
- 4. PHP過濾特定的詞
- 5. php過濾器內容找到具有特定ID的範圍
- 6. 尋找一個過濾器來修改月
- 7. 我正在尋找重寫一個特定的URl與PHP
- 8. 特定的列過濾器
- 9. 尋找一個特定類型的tcp服務器
- 10. 尋求一個PHP腳本來過濾一個RSS源
- 11. AngularJS搜索過濾器 - 第一個過濾器:全部,第二個過濾器:特定列
- 12. 尋找一種方法來查找,幷包括一個特定的選擇器
- 13. 尋找一個Javascript,PHP IDE
- 14. Mongo通過特定的過濾器查找查詢
- 15. 尋找特定代碼的某個
- 16. 尋找特殊字符php
- 17. Servlet過濾器 - 不要將過濾器應用於特定的過濾器
- 18. 過濾對象列表,尋找單一肯定結果
- 19. PHP過濾器通過特定的按鍵
- 20. angularJS自定義過濾器拉出一個特定值
- 21. 尋找一個獨特的字符
- 22. PHP:過濾特定列的mysql_query結果?
- 23. 在一個數組尋找一個特定值
- 24. DirectShow過濾器來抓住一個特定的窗口
- 25. 查詢和通過施加一個特定的濾波器
- 26. 如何爲一個特定的servlet應用過濾器?
- 27. 尋找一個PHP的str_split()的替代
- 28. 尋找具有一些特定功能的wysiwyg編輯器
- 29. 尋找特定講座
- 30. 尋找一個偉大的PHP概述
http://stackoverflow.com/questions/1330693/validate-username-as-alphanumeric-with-underscores – NoName13 2012-01-10 01:25:08
不幸的是,正則表達式是您描述的工作的最佳工具...像http://www.regexbuddy.com /是瞭解它們的好工具!我將用'/^[a-z0-9] {1,30} $/i'作爲最好的正則表達式! – cmbuckley 2012-01-10 01:26:02
LOL ...所有的答案都是完全一樣的想法! – 2012-01-10 01:27:30