我继承了一个网络论坛的一些非常复杂的代码,我正在尝试实现的功能之一是空间不被 chop 为一个的能力。这主要是因为我们的用户经常希望在他们的帖子中包含 ASCII 艺术、表格等。
我首先在 javascript 中使用简单的搜索和替换来做到这一点,这有破坏 HTML 标签的副作用(例如 <a href=....>
变成了 <a href=.....>
)。
然后我尝试在服务器端执行此操作,当检索到字符串时,通过在人们插入的链接和代码转换为 HTML 之前转换空格。这在一定程度上有效,但它会导致代码的其他部分出现一些问题,例如,如果消息被 chop 以显示在主页上,它可能会留下一些空格代码,例如
Here is a message&nb
我认为可能有一种方法可以改变原始的 javascript 来实现这一点——它只需要匹配不在 HTML 标签内的空格。
我最初使用的脚本是 message = message.replace(/\s/g, " ")
.
感谢您为此提供的任何帮助。
最佳答案
您可以使用 pre
元素来包含预格式化的文本,它按原样呈现空格。参见 http://www.w3.org/TR/html5-author/the-pre-element.html
那些文档明确指出 pre
元素的最佳用途之一是“显示 ASCII 艺术”。
示例:http://jsbin.com/owuruz/edit#preview
<pre>
/\_/\
____/ o o \
/~____ =ø= /
(______)__m_m)
</pre>
在您的情况下,只需将您的 message
放在 pre
标记中即可。
关于javascript - 如何在不破坏 HTML 标签的情况下将空格转换为  ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9062042/