我想要一个php代码来阻止drupal中用户名注册字段中的用户使用多个空格。
用户界面不应包含多个空格。
请帮助
答案 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';