gpt4 book ai didi

javascript - 将新行转换为段落/br HTML 标记,这可以是单个正则表达式吗?

转载 作者:数据小太阳 更新时间:2023-10-29 04:07:27 24 4
gpt4 key购买 nike

我正在开发的一个应用程序让用户以明文形式输入内容,这些内容稍后将显示为 HTML。为了让用户的内容尽可能的好看,我们对内容进行如下改造:

  • 由两个或多个换行符分隔的任何文本 block 都包含在

    标记中。新行字符(以及中间的任何空格)被删除。

  • 任何单个换行符(以及周围的空格)都被
    标记替换。

我目前通过将文本放入两个正则表达式替换来实现这一点,但想知道是否可以将其合并为一个。这是我现在拥有的 (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>';

所以,只有一个正则表达式。 :)

更新

Javascript 骗了我。字符串 replace 只处理第一次出现。

所以你必须使用现代 replaceAll 函数

或者回到第二个正则表达式

                 .replace(/\n/g, '<br />') + '</p>';

或者为旧版浏览器使用 String replaceAll polyfill

关于javascript - 将新行转换为段落/br HTML 标记,这可以是单个正则表达式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8579093/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com