2012-06-25 166 views
0

當我的字符串中有空格時,單詞將換行包含在表中。但是因爲我想保留innerHTML中的空格,所以我用'\ u00A0'替換了它。如何在包含Unicode字符的表中包裝單詞' u00A0'

var newString = aString.replace(/\s/g,'\u00A0'); 

現在,當newString得到呈現在表,它是不是結束了,因爲我已經取代空格對應的Unicode字符。

getTableRow(rowIndex).cells(i).innerHTML = myRow[i]; //Here You can replace myRow[i] with newString 

自動換行CSS屬性不適用於我。

總之,我已經使用了\ u00A0來防止連續的空格被壓縮到單個空間,但並不真正想要防止換行符。

+2

你似乎在問:「我怎麼能阻止自己吃蛋糕,吃蛋糕?」如果你給我們看一些代碼或URL,有人可能會猜測你的真實含義。你的意思是說你使用了'\ u00A0'來防止*連續的*空格被摺疊到一個單獨的空間,但是並不真的想要防止換行符?那麼對原始問題可能有更好的方法。 –

+0

這聽起來對我來說,你實際上想要做的是爲一些單獨的表格單元格設置最大寬度。問題是包裹的東西很醜,或者包裝不夠快(線太長),或者不應該包裝特定的短語?看起來可能通過調整表格的寬度來解決這個問題。 – artlung

+0

道歉我的錯誤。我更新了我的問題。請看一看。 –

回答

0

我找到了解決方案。

用可佈置的可見Unicode字符替換空格,例如「\ u2009」。它對我來說是完美的。

newString = aString.replace(/\s/g,'\u2009'); 
getTableRow(rowIndex).cells(i).innerHTML = newString; 
0

如果我理解正確,您可以插入以下標記以告訴瀏覽器它可以在某個點上包裝文本。

<wbr> 

有關此標籤的更多信息,請點擊此鏈接:http://www.w3schools.com/html5/tag_wbr.asp

唯一的障礙是,IE瀏覽器不支持此標記,但(作爲IE9的),據我所知。

+0

感謝您的回答。由於IE不支持這個標籤,我的應用只能在IE中運行,我不能使用這個 –

+0

很久以前,IE支持'',儘管新版本在支持方面存在問題,請參見http://www.cs。 tut.fi/~jkorpela/html/nobr.html#wbr –

+0

謝謝你通知我!我不知道 – starbeamrainbowlabs

1

而不是用不間斷空格替換空格(\u00A0),只需設置white-space:對CSS中的元素進行預先換行。 Browser support是相當不錯的,包括IE 8

但是如果你需要覆蓋IE 7及更早版本,也使用當前的做法,但這樣你只能更換任何對連續空間的第二空間:

aString.replace(/\s\s/g,'\u00A0 ') 
相關問題