替换多余的空格

时间:2011-08-16 17:22:45

标签: php

我需要从我的应用程序中的玩家用户名中删除多余的空格(字母之间不止一次空格),并用一个空格替换它们。我不介意用户只有一个空格,但我需要删除彼此相邻的多个空格。目前我通过这种方式实现:

$replace_array=array('  ','   ','    ','     ','      ','       ','        ','             ','          ','           ','            ','             ','              ','               ');
$fill_array=array('','','','','','','','','','','','','','');

$user_name=str_replace($replace_array,$fill_array,trim($_POST['name']));
$user_name=preg_replace('/[^a-zA-Z0-9 ]/','',$user_name);

这似乎完全没有必要删除多余的空格。或许,preg_replace函数是否已经处理了多余的空格?如果没有,我该怎么做才能简化这部分代码。

谢谢!

4 个答案:

答案 0 :(得分:6)

preg_replace('/\s+/', ' ', $string);

答案 1 :(得分:1)

找到1个或多个空格并替换为1个空格:

preg_replace('/\s+/',' ',$user_name)

您也可以使用1 preg-replace语句

$user_name=preg_replace('/([^a-zA-Z0-9 ]|\s+)/','',$user_name);

答案 2 :(得分:0)

尝试像这样的preg_replace:

preg_replace('/\s{2,}/', ' ', $str);

答案 3 :(得分:0)

我的理解是,只需使用str_replace(' ', '')即可解决您的问题。它取代了空间的多次出现。你也试过使用ltrim吗?