Weebly 在正斜杠之前将反斜杠插入我的 javascript

Weebly inserts backslashes into my javascript before forward slashes

据我所知,每当我使用 "Embed Code" 将包含模式 /</* 的 Javascript 插入 Weebly 页面时,它会被替换为 /<\/*已发布的页面。

例如,这段代码:

<script type="text/javascript">
    var hljs=new function(p){return p.replace(/</gm, "&lt;"}
</script>

当我在浏览器中检查最后一页时,显示如下:

<script type="text/javascript">
    var hljs=new function(p){return p.replace(/<\/gm, "&lt;"}
</script>

这是个问题,因为它似乎搞砸了旨在对我在页面上显示的代码执行 syntax-highlighting 的正则表达式。我正在使用从 R Markdown 生成的 html + Javascript 。当我在浏览器中打开 html 文件时,它们看起来很好,但是当我查看我在 weebly 上发布的版本时,没有语法突出显示,我得到一个 SyntaxError (Invalid regular expression flags in Chrome, unmatched ) in regular expression 在 FireFox 中)。如果我查看源代码,唯一的区别是额外的反斜杠。

有人有work-around吗?

更新:原来这是另一个问题的征兆。当 Rmarkdown 生成 html 时,它包含一个 <head></head> 块。将其放入页面的实际 header 中非常重要。将整个内容粘贴到 "embed code" 框中,就像我所做的那样,将所有内容都推送到 body 中。所以真正的解决方案是转到设计选项卡并将 Rmarkdown header 代码添加到与您正在使用的页面布局对应的文件的 header 中。

您可以尝试 new RegExp(string, flags); 语法。

<script type="text/javascript"> var hljs=new function(p){return p.replace(new RegExp("<", "gm"), "&lt;"} </script>

这可能会避免 Weebly 强制字符转义。