如何使用preg_match防止用户多次使用空间?

时间:2014-09-23 22:58:39

标签: php drupal preg-match

我想要一个php代码来阻止drupal中用户名注册字段中的用户使用多个空格。

用户界面不应包含多个空格。

请帮助

2 个答案:

答案 0 :(得分:2)

您要做的第一件事是使用trim()

  

trim - 从字符串的开头和结尾去掉空格(或其他字符)

确实,您希望在开头或结尾处接受带有空格的'Adam Sinclair '等用户名。此功能将删除它们。

然后使用preg_match()

$pattern = '/( ).*( )/';
$username = 'Wrong Username containing more than one space';
if ($ret = preg_match($pattern, $username))
    echo 'Wrong username\n';
else if ($ret !== false)
    echo 'Good username\n';

$username = 'Adam Sinclair';
if (preg_match($pattern, $username))
    echo 'Wrong username\n';
else  if ($ret !== false)
    echo 'Good username\n';

来自PHP documentation

  

如果模式与给定主题匹配,则preg_match()返回1,否则返回0;如果发生错误,则返回FALSE。

然而,另一种选择是使用substr_count()

if (substr_count($username, ' ') > 1)
    echo 'Wrong username\n';
else  if ($ret !== false)
    echo 'Good username\n';

来自PHP documentation

  

substr_count - 计算子字符串出现次数

答案 1 :(得分:1)

我认为你不需要preg_match。这可以通过substr_count完成,如下所示:

if( substr_count( $username, ' ' ) > 1)
    echo 'Wrong username';