所以,我為用戶名編碼了一些東西,我想驗證是否沒有任何其他字符,然后是 ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890._ // 一個空格但是,在 preg_match 中添加的字符太多,我想驗證一下如果還有其他字符,那么我放的串列,但是如何..?
我嘗試了 preg_match,但在做 Windos 時看到所有字符后感到疲倦。...字符太多...我只想簡化我的代碼..那么如何?
uj5u.com熱心網友回復:
正則運算式可以解決問題。
編輯:我現在看到您只想允許指定的字符,迭代字串就足夠了。
<?php
function validateUsername($username, $minLength = 3, $maxLength = 20) {
$allowed_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890._ //";
if (strlen($username) < $minLength || strlen($username) > $maxLength) {
return false;
}
for ($i = 0; $i < strlen($username); $i ) {
if (strpos($allowed_chars, $username[$i]) === false) {
return false;
}
}
return true;
}
$usernames = [
"test",
"test123",
"test_123",
"test.123",
"test-123",
"test\""
];
foreach ($usernames as $username) {
echo "Username: $username is " . (validateUsername($username) ? "valid" : "invalid") . "<br>";
}
?>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/519452.html
標籤:php
