0

当我的字符串有空格时,单词会在表中换行。但是因为我想在 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 

word-wrap CSS 属性对我不起作用。

简而言之,我使用 \u00A0 来防止连续空格折叠为单个空格,但我真的不想防止换行符。

4

3 回答 3

1

不要用不间断空格 ( \u00A0) 替换空格,只需white-space在 CSS 中的元素上设置 : pre-wrap 即可。浏览器支持相当不错,包括 IE 8。

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

aString.replace(/\s\s/g,'\u00A0 ')
于 2012-06-26T05:35:03.613 回答
0

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

<wbr>

有关此标签的更多信息,请点击以下链接:http ://www.w3schools.com/html5/tag_wbr.asp

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

于 2012-06-25T17:15:31.877 回答
0

我找到了解决方案。

用可识别的可见 Unicode 字符(即“\u2009”)替换空格。它对我来说非常有效。

newString = aString.replace(/\s/g,'\u2009');
getTableRow(rowIndex).cells(i).innerHTML = newString;
于 2012-07-03T16:24:16.017 回答