javascript - REGEX - 在 html 注释模式之间插入内容

标签 javascript html regex

我正在尝试创建一些 js 来延迟加载 html 文件。所以我必须在 html 注释中创建模式,然后为 js 文件注入(inject)脚本标签。类似于 gulp-inject ,但我自己的方式。

以下是 html 注释示例:

<!--inject:module:js-->
<!--endinject-->

我想识别注释模式并在其中注入(inject)脚本标记,它应该执行以下操作:

<!--inject:module:js-->
<script src="app/start.module.js"></script>
<script src="app/some.module.js"></script>
<script src="app/content.module.js"></script>
<!--endinject-->

这是我迄今为止使用正则表达式尝试过的操作:

/(<!--(inject:?([\w]*?)?:?([\w]*?)?)-->)(<!--endinject-->)*?/gm

它将仅选择第一个“注入(inject)”评论。

<!--inject:module:js-->

PS:我还是正则表达式的新手。

谢谢!

最佳答案

应用于时

<!--inject:module:js-->
<script src="app/start.module.js"></script>
<script src="app/some.module.js"></script>
<script src="app/content.module.js"></script>
<!--endinject-->

这个

(<!--inject:(\w+):(\w+)-->(?:(?!<!--endinject-->)[\s\S])*)(?=<!--endinject-->)

匹配:

第 1 组:

<!--inject:module:js-->
<script src="app/start.module.js"></script>
<script src="app/some.module.js"></script>
<script src="app/content.module.js"></script>

第 2 组和第 3 组包含 modulejs ,分别。

您可以继续将任何匹配项替换为 $1\n<script src="another/script.js"></script>\n .

这将保留注释结构,因此可以在同一输入上连续使用多次。

关于javascript - REGEX - 在 html 注释模式之间插入内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34695375/

相关文章:

javascript - kendo 模板在什么范围内执行?

javascript - Parse.com 云代码访问查询结果中的用户对象为 null

javascript - html pageshow 和 load 事件有什么区别?

javascript - 除了 Impact,还有哪些 JavaScript 游戏引擎?

html - 在div中填充图像

html - 如何使用 Handlebars 为 Meteor.js 中的每个命令填充 Bootstrap 网格系统?

regex - 使用 sed 将不可打印的代码替换为他们的 vi 编辑器代码

c# - 正则表达式从字符串中删除字符串

javascript - 匹配正则表达式条件

javascript - 使用 Vue.js 的导航栏