如何在包含Unicode字符'\ u00A0'的表中包装单词

时间:2012-06-25 14:31:59

标签: javascript html regex unicode whitespace

当我的字符串有空格时,会在表格中进行换行。但是因为我想在innerHTML中保留空格所以我用'\ 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来防止连续的空间折叠到一个空格,但实际上并不想阻止换行。

3 个答案:

答案 0 :(得分:1)

不要用不间断空格(\u00A0)替换空格,只需设置white-space:预先包装CSS中的元素。 Browser support相当不错,包括IE 8。

但是,如果你需要覆盖IE 7及更早版本,请使用当前的方法,但只能替换任何一对连续空格的第二个空格:

aString.replace(/\s\s/g,'\u00A0 ')

答案 1 :(得分:0)

如果我理解正确,您可以插入以下标记告诉浏览器它可以在某个点包装文本。

<wbr>

有关此标记的详细信息,请访问以下链接:http://www.w3schools.com/html5/tag_wbr.asp

据我所知,唯一的障碍是IE不支持此标签(从IE9开始)。

答案 2 :(得分:0)

我找到了解决方案。

用可制作的可见Unicode字符替换空格,即“\ u2009”。它对我来说很完美。

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