【发布时间】:2014-08-07 23:11:58
【问题描述】:
我正在尝试使用 preg_match 将带有字母数字字符的用户名列入白名单,并筛选出带有特殊字符的用户名,但代码未按我的意愿行事
这里是:
PHP
$username = "karl#";
if (!preg_match("#^[a-zA-Z0-9]+$#", $username))
{
$msg = "You may not use special characters in your username";
}
else {
$msg = "ok";
}
返回“确定”。换句话说,它让 karl# 通过。我希望它返回错误消息。
我是在滥用预赛还是我做错了什么?感谢您的任何建议。
编辑:上面的代码确实有效。错误是因为在原始版本中我没有对用户名进行硬编码,而是将其作为帖子获取,并且帖子存在问题。我使用 ^\w+$ 接受了下面的答案,因为它允许下划线并且更简洁。还要感谢 cmets 中包含的正则表达式的所有要点。
【问题讨论】:
-
我在尝试时收到错误消息。
-
错误信息也会出现在我面前..
-
请发布遇到问题的实际代码。您发布的内容应该可以正常工作。
-
杰夫和乔尔你们在哪里? michael.richter.name/blogs/…