后端传递一个显示如下的字符串:
"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/