使用Javascript格式化HTML字符串以正确显示
后端将传递一个字符串,该字符串显示如下:使用Javascript格式化HTML字符串以正确显示,javascript,java,html,Javascript,Java,Html,后端将传递一个字符串,该字符串显示如下: “您好,此通知旨在通知您违反人力资源政策XXXXX。” 这个页面的目的是让你可以轻松地复制粘贴预生成的电子邮件,但是在句子中喷出来一堆html标签是不需要的 该字符串位于id为“textBlock”的内部 后端是带有Oracle DB的Java。我可以在某种程度上编辑java,但我根本无法接触数据库。我使用了控制台来处理字符串,并且在完成编辑后,以任何方式对其进行编辑似乎都能使其正确显示。innerText包含类似于“我的摘要”的标记,innerHTML
“您好,
此通知旨在通知您违反人力资源政策XXXXX。”
这个页面的目的是让你可以轻松地复制粘贴预生成的电子邮件,但是在句子中喷出来一堆html标签是不需要的
该字符串位于id为“textBlock”的内部
后端是带有Oracle DB的Java。我可以在某种程度上编辑java,但我根本无法接触数据库。我使用了控制台来处理字符串,并且在完成编辑后,以任何方式对其进行编辑似乎都能使其正确显示。innerText包含类似于“我的摘要”的标记,innerHTML显示类似于的标记 到目前为止,我已经尝试为函数指定一个onload属性,该属性调用一个名为formatText()的函数;这就是: temp var=document.getElementById(“textBlock”).innerText; document.getElementById(“textBlock”).innerText=var 以及使用innerHTML而不是innerText的上述函数。我还尝试过使用document.write();最后,我在字符串前面添加了一些随机字符,并尝试使用replace(!@#“,”)函数替换这些字符,以模仿我注意到的“以任何方式编辑它似乎可以使其正确显示” 爪哇
out.println(“!@#”+strTemp+”)代码>
预期:
你好,
本通知旨在通知您违反人力资源政策XXXXX
实际:
您好,
此通知旨在通知您,您违反了人力资源政策XXXXX。
如果我理解正确,您需要的是一些html标签剥离功能。你可以使用正则表达式
var str=“您好,
此通知旨在通知您违反人力资源政策XXXXX。”
console.log(str)
var str2=str.replace(/]*>?/gm',)
console.log(str2)
(在注释中解决,为完整性添加了答案)
当HTML标记在浏览器中可见时,通常使用HTML实体对其进行编码,防止将其解析为HTML。在这种情况下,后处理脚本将
字符替换为实体对应的
和
禁用这些替换解决了问题。我希望将标记读取为html,并导致文本格式化,而不仅仅是包含标记的字符串。我已经更新了上面预期的实际vs,以更好地反映this@CasinoRoyale据此编辑。可以吗?任何问题都让我知道字符串中的HTML标记似乎不是真正的HTML标记,而是用实体编码的(
,
),这些实体使它们看起来像HTML,但不被解析为HTML。您是否检查了源字符串?是否尝试了document.getElementById(“textBlock”).innerHTML=您从后端获取的字符串代码>@Pantalaimon我找到一个有数据库访问权限的人来检查数据库,他们被存储为
,等等。。。不是作为编码实体。@Enzy我尝试了var placeholder=document.getElementById(“textBlock”);document.getElementById(“textBlock”).innerHTML=placeholder.innerHTML;这应该会产生相同的结果。我还尝试用innerText代替innerHTML,看看这是否会有所不同。两者都不起作用:(@CasinoRoyale)对DB查询的输出是否进行了任何处理,可能会在输出.println
数据之前对其进行更改?或者您在查询中使用了类似HTP.ESCAPE\u SC
的过程?