据我所知,每当我使用“嵌入代码”将包含模式/</*的Java脚本插入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>


这是一个问题,因为它似乎搞砸了正则表达式,这些正则表达式旨在对我在页面上显示的代码进行语法突出显示。我正在使用从R Markdown生成的html + Javascript。当我在浏览器中打开html文件时,它们看起来不错,但是当我查看放置在weebly上的版本时,没有语法突出显示,并且出现SyntaxError(Chrome中为Invalid regular expression flags,FireFox中为unmatched ) in regular expression)。如果查看源代码,唯一的区别是多余的反斜杠。

有人有解决方法吗?

更新:原来这是另一个问题的征兆。当Rmarkdown生成html时,它包含一个<head></head>块。重要的是要进入页面的实际标题。像我之前所做的那样,将整个内容粘贴到“嵌入代码”框中,将所有内容都推到了体内。因此,真正的解决方案是转到“设计”选项卡,并将Rmarkdown标头代码添加到与您正在使用的页面布局相对应的文件的标头中。

最佳答案

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

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

这样可以避免Weebly强迫角色逃脱。

08-15 17:36