【发布时间】:2020-10-03 15:30:10
【问题描述】:
我正在尝试删除用户名中的空格,但出了点问题。我的另一种情况继续运行。即使我把用户名没有空格,它也不起作用
这是我的代码
$username = trim($_POST['username']);
$username = strip_tags($username);
$username = htmlspecialchars($username);
// username validation
if (empty($username)) {
$error = true;
$usernameError = "Please enter your username.";
} else if (strlen($username) < 3) {
$error = true;
$usernameError = "Username must have at least 3 characters.";
} else if (preg_match("/^(?=.*[a-z])(?=.*[0-9])[a-z0-9][a-z0-9_]{1,6}[a-z0-9]$/", $username)) {
$error = true;
$usernameError = "Username must contain alphabets and numbers.";
}
【问题讨论】:
-
这不是str_replace的使用方法。请参阅文档。
-
我不明白您为什么要使用所有这些代码和用户名。这样做可能弊大于利。
-
我同意 Funk 的观点,像这样强加用户名字符要求并不是一种常见的做法——我总是喜欢使用 mickmackusa 作为我的网名,但您的过滤器不允许这样做。您还禁止使用大写字母。我最多会使用
strlen()和ctype_alnum()——不需要正则表达式。或者,如果您需要包含下划线,请使用正则表达式~^\w{3,}$~。没有剥离,没有解码。考虑一下。
标签: php