据我所知,每当我使用&#34;嵌入代码&#34;将包含模式/</*
的Javascript插入Weebly页面时,它就会被/<\/*
替换为已发布页。
例如,这段代码:
<script type="text/javascript">
var hljs=new function(p){return p.replace(/</gm, "<"}
</script>
当我在浏览器中检查最终页面时,显示如下:
<script type="text/javascript">
var hljs=new function(p){return p.replace(/<\/gm, "<"}
</script>
这是一个问题,因为它似乎搞砸了正则表达式,这些表达式旨在对页面上显示的代码I进行语法突出显示。我使用从R Markdown生成的html + Javascript。当我在浏览器中打开html文件时,它们看起来很好,但是当我看到我轻松放置的版本时,没有语法突出显示,我在Chrome中得到一个SyntaxError(Invalid regular expression flags
,unmatched ) in regular expression
在FireFox中)。如果我查看源,唯一的区别是额外的反斜杠。
任何人都有解决方法吗?
更新:原来这是一个不同问题的症状。当Rmarkdown生成html时,它包含<head></head>
块。进入页面的实际标题非常重要。将整个内容粘贴到&#34;嵌入代码&#34;盒子,就像我在做的那样,将一切都塞进了身体。因此,真正的解决方案是转到设计选项卡并将Rmarkdown标题代码添加到与您正在使用的页面布局相对应的文件的标题中。
答案 0 :(得分:1)
您可以尝试new RegExp(string, flags);
语法。
<script type="text/javascript">
var hljs=new function(p){return p.replace(new RegExp("<", "gm"), "<"}
</script>
这可能会避免Weebly强制角色逃脱。