javascript - 使用 Javascript 格式化 HTML 字符串以正确显示

标签 javascript java html

后端传递一个显示如下的字符串:

"Hello, <br><br> This notice is to inform you that you are in violation of <font color=red><b>HR POLICY XXXXX</b></font>."

此页面的目的是让您轻松复制粘贴预生成的电子邮件,但不需要在句子中喷出一堆 html 标签。

有问题的字符串在 ID 为“textBlock”的 a 中。

后端是带有 Oracle 数据库的 Java。我可以在某种程度上编辑 java,但我根本无法触及数据库。我已经使用控制台来处理字符串,并且在我完成编辑后以任何方式对其进行编辑似乎都能使其正确显示。 innerText 包含像我的摘要中那样的标签,innerHTML 显示像
这样的标签。

到目前为止,我已经尝试提供一个调用名为 formatText() 的函数的 onload 属性;这样做: temp var = document.getElementById("textBlock").innerText; document.getElementById("textBlock").innerText = var;

以及上面的函数用 innerHTML 而不是 innerText。我也试过使用 document.write();但这会清除页面的其余部分。最后我在字符串前面添加了一些随机字符并尝试使用 replace("!@#","") 函数来替换那些以模仿“编辑”它似乎以任何方式使其正确显示”我注意到。

Java

out.println("<td align=left id=textBlock onload=formatText();> !@#" + strTemp + "</td>" );

预期:

你好,

本通知旨在通知您您违反了HR POLICY XXXXX

实际:

Hello, <br><br> This notice is to inform you that you are in violation of <font color=red><b>HR POLICY XXXXX</b></font>.

最佳答案

如果我理解正确的话,您想要的是一些剥离 html 标签的功能。你可以使用正则表达式

var str = "Hello, <br><br> This notice is to inform you that you are in violation of <font color=red><b>HR POLICY XXXXX</b></font>."

console.log(str)

var str2 = str.replace(/<[^>]*>?/gm, '')

console.log(str2)

如果你想让html元素渲染你的html,你需要使用DOM属性innerHtml

var str = "Hello, <br><br> This notice is to inform you that you are in violation of <font color=red><b>HR POLICY XXXXX</b></font>."

document.getElementById('myDiv').innerHTML = str
<div id="myDiv">Hi</div>

关于javascript - 使用 Javascript 格式化 HTML 字符串以正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56743154/

相关文章:

javascript - 如何将 div 元素放入 Canvas

javascript - 通过 RequireJS 加载 PopperJS 和 Bootstrap 的问题,即使在使用推荐的 PopperJS 版本之后

html - 包含 .TXT 的简单 CSS

java - System.out、stdout 和 cout 是一回事吗?

Java Util Logger 写入同步

html - bootstrap div 不居中

javascript - 在 Javascript 中动画化 div 外观

javascript - 如何获取特殊字符后的最后一个单词?

JavaScript:在 hashchange 上按名称调用函数

java - 使用替代方法重载方法值 toString