我面临的问题是,我在任何地方都没有看到正确的答案。我需要的帮助是:
如何防止我的用户注册非字母数字用户名?确切地说,我可以通过以下方法来预防:
function validate_alphanumeric_underscore($string?) { return preg_match(\'/^[A-Za-z][A-Za-z0-9]*(?:_[A-Za-z0-9]+)*$/\',$str); }
但我应该/可以使用的字符串是什么?如何回显错误消息,说明输入的用户名包含无效字符?
干杯
最合适的回答,由SO网友:kaiser 整理而成
检查字母数字
有关更多详细信息,请查看
regex Q开启
SO.
$name = \'input string 123";
// Doesn\'t allow:
// Pre-/Appending white space
// Not more than one space in between
// Non-alphanumeric characters (lower case)
if( ! preg_match( "/^[a-z0-9]+([\\\\s]{1}[a-z0-9]|[a-z0-9])+$/i", $name ) )
{
// Output Error Message
}
// Or: Does only allow
// Alphanumeric character (lower & upper case)
// Dash & underline "-", "_" - makes (imho) sense
if( ! preg_match( "/^[A-Za-z0-9-_",\'\\s]+$/", $name ) )
{
// Output Error Message
}
错误消息您需要通过Ajax执行此操作。最好是
look over the search results. 另一个(也许)好的参考是检查一些ajax登录插件的代码,以了解“操作方法”。