Node Js中的文本到HTML转换

7
我正在使用 nodemailer 从node服务器发送邮件。 我从MSSQL SQL服务器获取此邮件的内容,其格式为纯文本格式,这意味着其中有换行符,但是当我使用nodemailer发送它时,换行符丢失了,整个文本看起来很混乱。 另一种方法是在纯文本中插入HTML标记以进行换行,这样发送就可以正常工作。 但是涉及太多手动工作,我正在寻找一个库或实用程序,可以将纯文本转换为HTML,以便我可以使用邮件发送。

是否有任何库可满足此需求或自动完成此操作的方法?

3个回答

11
以下内容将通过在多个换行符之间插入段落标签(<p>...</p>)来包装所有部分,并在只有一个换行符时插入换行符标签(<br>)。没有任何换行符的文本块将直接被包装在一个段落标签内。
template = '<p>' + template.replace(/\n{2,}/g, '</p><p>').replace(/\n/g, '<br>') + '</p>';

因此,举个例子,它将接受这样的内容:

Title

First line.
Second line.

Footer

将其转换为以下内容:
<p>Title</p><p>First line.<br>Second line.</p><p>Footer</p>

2
最简单的解决方案是将新行字符替换为<br>
试试看。
text.split('\n').join('\n<br>\n')

那么,你就完成了。

我做了那个,但是如果不在行首和行尾加上<p></p>,它就无法工作。 - Jeet

0

好的,最终这段代码片段对我起作用了 -

template = template.replace(/\n/gi, "</p></br/>")
template = template.replace(/<\/p>/gi, "</p><p></br/>")

这是一番尝试和实验,但最终它成功了。


1
它可能对你有用,但是很抱歉,这是一个丑陋的解决方案。这些"</br/>"也是错误的。 - jox
你能否提供更好的方法?我很想得到更好的解决方案,非常感谢您的回复。 - Jeet
当然, 请看我的回答。 - jox

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接