我想在PHP中使用以下正则表达式检查任何非法字符.基本上,我想只允许使用字母数字和下划线(_).不幸的是,下面的代码似乎没有正常工作.如果字符串$ username中有任何非法字符,则应返回true.但是,它仍然允许字符串中的任何字符.知道正则表达式有什么问题吗?
if ( !preg_match("/^[-a-z0-9_]/i", $username) )
{
return true;
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.
Ben*_*ank 15
您的代码会检查第一个字符是否无效.要检查是否存在任何无效字符,请取消您的字符类而不是函数返回并删除锚:
if ( preg_match("/[^-a-z0-9_]/i", $username) )
{
return true;
}
Run Code Online (Sandbox Code Playgroud)
当然,你也可以缩短它/[^-\w]/("单词"字符是字母,数字和下划线),或者甚至只是/\W/你不想允许破折号.
| 归档时间: |
|
| 查看次数: |
14032 次 |
| 最近记录: |