2015-09-03 68 views
2

我設法刪除空格,但我不明白爲什麼它會刪除我的回報。我的表單中有一個textarea,我想最多允許兩個回報。這是我迄今爲止使用的。在PHP字符串中刪除兩個以上的回報和多個空格

$string = preg_replace('/\s\s+/', ' ', $string); // supposed to remove more than one consecutive space - but also deletes my returns ... 
$string = preg_replace('/\n\n\n+/', '\n\n', $string); // using this one by itself does not do as expected and removes all returns ... 

看起來第一行已經擺脫了多個空格並且所有的返回......這很奇怪。不知道我做得對...

+1

使用\ H而不是用於水平空格 – Tal

+0

感謝替換\ S。我的回程車怎麼樣? ...它仍使用第二個preg_replace – gotye

+0

刪除所有退貨,您必須將替換字符串放在雙引號之間。 –

回答

0

對於那些需要它的人,這就是你如何從textarea中刪除兩個回車。

preg_replace('/\n\r(\n\r)+/', "\n\r", $str); 

對於空間的問題,因爲它已經張貼以上,由\^h

+0

您的意思是「這就是您如何從textarea中移除兩個或更多回車。」對? (謝謝,順便說一句,這正是我需要的!) – Phil

1

因爲\s也會匹配換行符。所以我建議你使用\h來匹配任何類型的水平空間。

$string = preg_replace('/\h\h+/', ' ', $string); 
1
\s match any white space character [\r\n\t\f ] 

見deifinition的\s。它包括\n。使用

\h matches any horizontal whitespace character (equal to [[:blank:]]) 
1

使用\h的水平空格。

相關問題