0

在我的 Angular 应用程序中,我应用了 Angular 清理,因此无效的 html 被剥离(使用 getTrustedHtml mathod)和有效的 html 去(HttpPost)到 web api。由于其他原因,不推荐使用 web api 中的 HtmlSanitizer;所以只有客户端我必须做。

在我的 Angular 应用程序中发送 html 电子邮件时,我在 QA 测试期间遇到了 HTML 场景中的孤立尖括号:并且孤立尖括号导致错误为“错误:[$sanitize:badparse] http://errors.angularjs.org /1.4.8/ $sanitize/badparse?p0=%3C%2Fh"

<!DOCTYPE html>
<html>
<body>
<h1>My First Heading</h1>

I am going very >> fast.. <hello> if you are not able to come by 7'<<< O clock> Please be at home >;
<div style="background-color:blue;">Testing</div>
<img src="../parent/my_profile_photo.jpeg" title="Profile Pic">
<img src="profile_of_parents/my_parents_photo.jpeg"  />
I am in >>>> <Bangalore> which is far > 50 squre Km. Price for everything here is much much >> 100 Rs.
<p>My last paragraph.</p>

</body>
</html>

要删除孤立的尖括号(“<”或“<<..”或“>”或“...>>>>>....”或 />)我开始搜索正则表达式但找不到工作例子。

如果有人知道任何想法/工作,请提供帮助。

4

1 回答 1

0

这非常困难,因为您让用户输入他们自己的代码。

您应该实施规则,例如不为用户自定义标签,或者只解析原始文本而不解析 HTML 文本。

使用这种规则,您可以解析内容并将其发送。

例如,如果用户不能使用没有空格的 V 形,你可以这样做:

const text = `<div>Some text > with chevrons < in all directions</div>`;
const parsed = text.replace(/ > /g, ' &gt; ').replace(/ < /g, ' &lt; ');

console.log(parsed);

于 2018-06-05T11:11:16.493 回答