Php 替换多余的空格
我需要在我的应用程序中删除我的玩家用户名中多余的空格(字母之间的空格不止一次),并用一个空格替换它们。我不介意用户使用单个空格,但我需要删除相邻的多个空格。目前,我是这样实现的:Php 替换多余的空格,php,Php,我需要在我的应用程序中删除我的玩家用户名中多余的空格(字母之间的空格不止一次),并用一个空格替换它们。我不介意用户使用单个空格,但我需要删除相邻的多个空格。目前,我是这样实现的: $replace_array=array(' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','
$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函数是否已经处理过多余的空格?如果没有,我应该做些什么来简化这部分代码
谢谢 找到一个或多个空间并替换为一个空间:
preg_replace('/\s+/', ' ', $string);
preg_replace('/\s+/',' ',$user_name)
也可以使用1个preg replace语句
$user_name=preg_replace('/([^a-zA-Z0-9 ]|\s+)/','',$user_name);
请尝试像这样进行preg_替换:
preg_replace('/\s{2,}/', ' ', $str);
我的理解是,简单地使用
str_replace('',)
将解决您的问题。它取代了一个空间中的多个事件。您也尝试过使用ltrim吗?我如何将当前的preg\u replace功能与此功能结合起来?我需要进一步研究这个函数。$user\u name=preg\u replace('/\s+/',''.$user\u name)代码>,然后像往常一样进行第二次预更换。混合使用具有不同用途的正则表达式通常只会让你吃不消,所以要将它们分开。@Phillip最好先使用你的正则表达式,然后再使用这个正则表达式。或“aaa&aaa”将失效,可能重复