我想找到最輕量級的解決方案來驗證字符串爲a letter or number
+ ?
。例如:a?
或1?
等PHP驗證字符串輕量級
0
A
回答
4
1
略低快於正則表達式的功能:
// return true or false
function validate($str) {
$str0 = ord($str[0]);
return(
(
($str0 >= 97 && $str0 <= 122) or
($str0 >= 48 && $str0 <= 57)
) &&
(
$str[1] == '?'
)
);
}
-1
確定這是最快的方式
$allowed_char = Array();
for($i=ord('a');$i<=ord('z');$i++) $allowed_char[chr($i)] = true;
for($i=ord('0');$i<=ord('9');$i++) $allowed_char[chr($i)] = true;
function validate($str) {
global $allowed_char;
return $allowed_char[$str[0]] && $str[1] == '?' && !isset($str[2]);
}
正則表達式= 2.0147299766541 s
該解決方案= 1.6041090488434s
所以它比正則表達式的解決方案:)
+1
包括數組的構造?爲什麼不製作一個完整的靜態查找表?順便說一下,「輕量級」並不一定意味着「最快」。 ; O) – deceze
0
快20%,前一段時間,我寫了一個輕量級的驗證類。也許你可以使用它。
例如:
$oValidator = new Validator();
$oValidator->isValid('a', 'alpha_numeric|max_length[1]'); //true
$oValidator->isValid('1', 'alpha_numeric|max_length[1]'); //true
$oValidator->isValid('ab', 'alpha_numeric|max_length[1]'); //false
$oValidator->isValid('1337', 'alpha_numeric|max_length[1]'); //false
例子: http://sklueh.de/2012/09/lightweight-validator-in-php/
github上: https://github.com/sklueh/Lightweight-PHP-Validator
相關問題
- 1. 輕量級文件驗證與PKI
- 2. PHP驗證和驗證字符串
- 3. PHP字符串驗證
- 4. 輕量級PHP CRUD
- 5. 希臘字母驗證PHP字符串
- 6. 驗證字符串
- 7. 驗證字符串
- 8. 輕量級PHP REST API
- 9. PHP中的輕量級CMS
- 10. 從URL驗證PHP中的字符串
- 11. PHP使用preg_match驗證字符串
- 12. 使用php進行字符串驗證
- 13. 驗證查詢字符串在PHP
- 14. 在PHP中驗證LESS字符串
- 15. php查詢字符串驗證
- 16. PHP查找字符串並驗證它
- 17. 驗證變量包含字符串值
- 18. .Net對象的輕量級字符串序列化
- 19. 字符串字母驗證
- 20. 如何使用jquery驗證php md5字符串驗證
- 21. 只驗證字符串php中的選定字符(電話號碼驗證)
- 22. 輕量級重量級
- 23. 驗證輕量級核心數據遷移
- 24. 使用MV-VM的WPF輕量級驗證框架
- 25. 具有身份驗證支持的輕量級轉發代理
- 26. 輕量級像
- 27. 輕量級JRE
- 28. 驗證Facebook DateTime字符串
- 29. 字符串索引驗證
- 30. 驗證日期字符串
真的有重液檢查僅2個字符? –
你可以看看正則表達式。這裏有一些關於[如何工作]的例子(http://php.net/manual/en/function.preg-match.php) – Ibu
is_string()....? – sdolgy