2010-02-25 64 views
0

如果用戶鍵入一個非常長的字符串,它不會移動到第二行,並會在我的網站上打開一個頁面。如果該字符串不是URL,我該如何接收該字符串並將其完全刪除?如何從字符串中刪除一個長字

+1

您可能需要查看''元素。 – zzzzBov 2011-01-04 22:41:08

回答

4

爲什麼你要刪除的用戶說什麼?相反,它換到一個新行 - PHP中做一個函數,稱爲wordwrap

+0

但記得將第四個參數設置爲true,以便切實切割那些過長的字符串! – Shinhan 2010-02-26 07:35:33

+0

wordwrap將打破整個字符串,而不僅僅是長字。 – Rob 2010-02-27 15:37:48

+0

你沒有回答這個問題。請更改問題或更改答案。有無數的理由去除一個長詞。不要以爲你可以想象/預測每種可能的情景/應用,直到時間結束。也許「肺炎巨噬細胞硅膠囊結合」的45個字符是某些應用的合理限制。 – 2014-01-20 21:27:09

3

你真的想刪除這個詞,還是隻是想阻止它讓你的頁面佈局太寬?如果後者更多,你可以考慮使用CSS來管理溢出。

例如:

DIV { 溢出:隱藏; }

將隱藏任何超出div邊界的內容。

下面是關於CSS溢出的詳細信息: http://www.w3schools.com/css/pr_pos_overflow.asp

3
// remove words over 30 chars long 
$str = preg_replace('/\S{30,}/', '', $str); 

編輯:每添普的建議更新,\ S任何非空格字符(同[^\s])匹配

而且,這裏是集EHDV的建議,使用自動換行更好的辦法:

//This will break up the long words with spaces so they don't stretch layouts. 
$str = preg_replace('/(\S{30,})/e', "wordwrap('$1', 30, ' ', true)", $str); 
+1

我建議使用/ S而不是/ w - 這也會捕獲帶有標點符號,數字和其他特殊字符的長字符串。 – 2010-02-25 20:52:32

+0

$ str = preg_replace('/(\ S {30,})/ e',「wordwrap('$ 1',30,'',true)」,$ str); 什麼?你用文字wordwrap命令替換實際的長字符串?你爲什麼要這樣做? – Shinhan 2010-02-26 07:37:41

+0

'e'修飾符評估替換字符串。 – Rob 2010-02-26 14:39:59

0

@Rob護理使用REGEX。性能瞭望。