我正在处理的应用程序让用户以明文形式输入内容,稍后将以
HTML格式显示.为了尽可能好地显示用户的内容,我们将内容转换如下:
>由两个或多个新行字符分隔的任何文本块都包含在< p>中.标签.剥离出新的行字符(以及其间的任何空格).
>任何单个新行字符(以及周围的空格)都被< br />替换.标签.
我目前通过将文本放在两个正则表达式替换中来实现这一点,但是想知道它是否可以合并为一个.这就是我现在所拥有的(JavaScript):
// content holds the text to process content = '<p>' + content.replace(/\n([ \t]*\n)+/g,'</p><p>') .replace(/\n/g,'<br />') + '</p>';
解决方法
有两种不同的替换字符串.因此,单个替换呼叫是不可能的.
但第二个replace()可以更改为更有效的纯字符串替换.
content = '<p>' + content.replace(/\n([ \t]*\n)+/g,'</p><p>') .replace('\n','<br />') + '</p>';
所以,有单一的正则表达式.