仅允许使用“合理”字符的用户名

时间:2013-11-20 20:19:13

标签: string

网站的用户名可以包含空格字符,但不能仅由空格字符组成。它可以包含一些符号(如下划线和短划线),但从某些符号开始看起来很奇怪。应该允许使用非拉丁字母,最好是所有语言,但不应使用制表符和换行符。绝对没有Zalgo。

构成合理命名系统应该和不应该允许的规则是复杂的,但是对于每个网站它们实际上是相同的。重新实现它们可能是一个坏主意。我在哪里可以找到实现?我正在使用PHP。

1 个答案:

答案 0 :(得分:0)

您应该针对与允许的字符集匹配的正则表达式验证新用户输入的用户名。

示例:以下仅允许英文字母数字字符和 - 和_。

function isNewUsernameValid ($name, $filter = "[^a-zA-Z0-9\-\_\.]"){
    return preg_match("~" . $filter . "~iU", $name) ? false : true;
}

if ( !isNewUsernameValid ($name) ){
 print "Not a valid name.";
}

对于您的特定情况,您必须提出并测试正则表达式。