我正在尝试阻止用户输入空的用户名。 要确定空格,我使用此代码:
if (strlen($nickname) > 0 && strlen(trim($nickname)) == 0)
{
die("Your username is empty");
}
它可以工作但是当用户同时按下Alt + 0160和空格时,上面的条件不成立,那么如何确定用户名是否仅包含空格和alt + 0160或任何其他导致空char的字符?
答案 0 :(得分:2)
您可以先简单地过滤字符串
$string = filter_var($string,FILTER_SANITIZE_STRING , FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH );
答案 1 :(得分:1)
试试这样:
$nickname = preg_replace("/[^A-Za-z0-9]/","",$str); //only things from the alfabet + numbers
if( strlen( $nickname ) < 1){
// error
}
你过滤掉你不想要的东西(在这种情况下,只允许你想要的东西),然后检查字符串的长度。