我的 Codewars 解决方案与真实解决方案几乎相同,但不起作用。有人知道为什么吗?

问题描述 投票:0回答:1

我正在做一个名为 Safen 用户输入第一部分 - htmlspecialchars 的 Codewars 挑战。目的是用 html 实体替换特殊字符。我想出了上面的解决方案,但它不起作用,但底部的代码成功了。正如您所看到的,唯一的区别是它们列出的顺序。为什么我的代码不起作用?

function htmlspecialchars(formData) {
    return formData.replaceAll('<', "&lt;")
                 .replaceAll('>', "&gt;")
                 .replaceAll('"', "&quot;")
                 .replaceAll('&', "&amp;");
}

function htmlspecialchars(formData) {
    return formData.replaceAll('&', "&amp;")
                 .replaceAll('"', "&quot;")
                 .replaceAll('<', "&lt;")
                 .replaceAll('>', "&gt;");
}
javascript replaceall
1个回答
0
投票

在你的解决方案中,

<
首先会变成
&lt;
.replaceAll('<', "&lt;")
),但在最后一步(
.replaceAll('&', "&amp;")
)它变成
&amp;lt;
,这是不正确的。

正确的执行顺序很重要。

只要调试就能找到问题。

© www.soinside.com 2019 - 2024. All rights reserved.