0

在 javascript 中,我需要一个字符串和 HTML 取消转义它。

这个问题在这里提出了同样的问题,最流行的答案是填充一个临时 div。

我也用过这个,但我想我发现了一个错误。

简单的例子,正确的行为

如果你有这个字符串:Cats>Dogs

未转义,应该是:Cats>Dogs

格式错误的示例,错误的行为

如果您删除分号并改用它:Cats>Dogs

你会得到这个结果:猫>狗

那不是错了吗?

这让我觉得很奇怪。据我了解,转义字符串需要存在终止分号,否则不会转义。毕竟,如果我有一家名为guitars&s的商店呢?据我们所知,这家公司存在但没有生意,因为它在所有记录的地方都会导致空引用异常。

关于如何在分号丢失时故意避免转义的同时执行转义的任何想法?目前,我能想到的就是自己进行逃避。

(顺便说一下,StackOverflow 中的 WYSIWYG 预览展示了类似的异常行为。尝试输入>,这将呈现为>!)

4

1 回答 1

2

那不是错了吗?

成功的 HTML 解析器是宽容的。这是它们与 XML 解析器的区别之一。他们不一定遵守有关标记的严格规则,原因很简单,因为那里有很多不正确的标记。所以他们试图弄清楚标记代表什么。&gtDogs更可能意味着>Dogs&gtDogs,所以这就是解析器所使用的。

于 2013-11-08T22:45:11.560 回答