JS Regex替换HTML评论之间的所有内容

时间:2015-06-18 10:00:20

标签: javascript regex gruntjs grunt-string-replace

我尝试使用grunt-string-replace来替换2个HTML注释之间的文件内容。我所提出的工作在一条线路上工作得很好,但对于我的生活,我无法在有多条线路的地方找到它。

<!-- START COMMENT -->This matches<!-- END COMMENT -->

<!-- START COMMENT -->
this
doesn't
match
<!-- END COMMENT -->

我目前的正则表达式是

/<!-- START COMMENT -->[\s\S]*?<!-- END COMMENT -->/g

我知道用.*?替换[\s\S]*?(适用于单行)会允许匹配多行,但我似乎无法让它工作。

有人有什么想法吗?

更新: 作为下面提到的评论者,我的正则表达式很好,这就是我用grunt实现它的方式

//This didn't work
.....
options:{
    replacements: [
        {
            pattern: "/<!-- START COMMENT -->[\s\S]*?<!-- END COMMENT -->/g",
            replacement: '<script src="'+minJSDestination+'"></script>'
        }
    ]
}
.....


//This does work
.....
options:{
    replacements: [
        {
            pattern: /<!-- START COMMENT -->([\s\S]*?)<!-- END COMMENT -->/ig,
            replacement: '<script src="'+minJSDestination+'"></script>'
        }
    ]
}
.....

1 个答案:

答案 0 :(得分:1)

在这一行:

pattern: "/<!-- START COMMENT -->[\s\S]*?<!-- END COMMENT -->/g",

您在RegEx周围有报价。删除它们,它应该工作正常:

pattern: /<!-- START COMMENT -->[\s\S]*?<!-- END COMMENT -->/g,