简体   繁体   English

(discord.js + document) 用<br>

[英](discord.js + document) Replace new lines with <br>

I am creating a ticket bot with discord.js.我正在使用 discord.js 创建一个票务机器人。 With this bot i am creating HTML transcripts that get uploaded to an apache web server.使用这个机器人,我正在创建上传到 apache 网络服务器的 HTML 脚本。

I am trying to replace new lines (\\n) with <br> .我正在尝试用<br>替换新行 (\\n)。 The regex is right, but the html file isn't recognizing the <br> -s.正则表达式是正确的,但 html 文件无法识别<br> -s。

Code:代码:

let descText = document.createTextNode(embed.description.replace(/(?:\r\n|\r|\n)/g, "<br>").replace(/"/g, ""));
descNode.append(descText);

Result: https://imgur.com/a/MwXRfAe结果: https : //imgur.com/a/MwXRfAe

It's because createTextNode does escape HTML characters, so it will escape your <br> tags.这是因为createTextNode确实会转义 HTML 字符,因此它会转义您的<br>标签。

You will need to find some other way, like using createElement s , or imply updating the innerHTML property:您需要找到其他方法,例如使用createElement s ,或暗示更新innerHTML属性:

 let embed = { description: `Title Lorem ipsum dolor sit amet consectetur adipisicing elit. Labore vitae quidem maiores dicta cum? Tempora ex numquam qui rerum, earum maiores cupiditate! Officiis vero, enim fugiat porro architecto quod nam modi quasi natus at dolore deserunt quisquam ducimus. Minima impedit explicabo consequatur sint quibusdam, minus nam asperiores. Ut impedit asperiores quo beatae quidem aspernatur soluta sequi sapiente, sit illo commodi itaque temporibus facere dolorem vero? Explicabo consequatur optio sunt ea illo doloribus? Assumenda cupiditate rem commodi dolores voluptatem sit fuga quam architecto perspiciatis.` } let descText = embed.description.replace(/(?:\\r\\n|\\r|\\n)/g, "<br>").replace(/"/g, "") let descNode = document.createElement('p') descNode.classList.add('embedDesc') descNode.innerHTML = `<p>${descText}</p>` document.querySelector('.embedContainer').appendChild(descNode)
 .embedContainer { border: 2px solid #eee; border-radius: 4px; color: #464646; font-family: sans-serif; margin: 0 auto; max-width: 400px; padding: 0 1rem; }
 <div class="embedContainer"></div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM