2

我试图阻止用户输入空的用户名。要确定空格,我使用以下代码:

if (strlen($nickname) > 0 && strlen(trim($nickname)) == 0)
{
die("Your username is empty");
}

它可以工作,但是当用户同时按下 Alt+0160 和空格时,上述条件不成立,那么我如何确定用户名是否仅包含空格和 alt+0160 或任何其他导致空字符的字符?

4

2 回答 2

2

您可以先过滤字符串

$string = filter_var($string,FILTER_SANITIZE_STRING , FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH );
于 2013-02-15T20:34:14.950 回答
1

试试这样:

$nickname = preg_replace("/[^A-Za-z0-9]/","",$str); //only things from the alfabet + numbers
if( strlen( $nickname ) < 1){
  // error
}

你过滤掉你不想要的东西(在这种情况下,只允许你想要的东西),然后检查字符串的长度。

于 2013-02-15T20:34:44.937 回答