Javascript 用Grunt替换替换HTML标记
我正在处理一个grunt文件。我们在本地使用html格式的文件,当我们将它们实现到CMS中时,它们需要转换为aspx 我正在尝试用Javascript 用Grunt替换替换HTML标记,javascript,regex,gruntjs,build-process,Javascript,Regex,Gruntjs,Build Process,我正在处理一个grunt文件。我们在本地使用html格式的文件,当我们将它们实现到CMS中时,它们需要转换为aspx 我正在尝试用替换的所有实例 我正在使用“grunt替换”:“^0.8.0”。此任务在默认和生成下注册。我已经尝试使用正则表达式来匹配名称,并且我查看文档的时间太长了。下面是我的grunt文件和replace的样子: replace: { dist: { options: { patterns: [ {
替换
的所有实例
我正在使用“grunt替换”:“^0.8.0”。此任务在默认和生成下注册。我已经尝试使用正则表达式来匹配名称,并且我查看文档的时间太长了。下面是我的grunt文件和replace的样子:
replace: {
dist: {
options: {
patterns: [
{
match: '/script src="/g',
replacement: function() {
'asp:PlaceHolder runat="server" url="';
}
}
]
},
files: [
{expand: true, flatten: true, src: ['<%= config.dist %>/index.html'], dest: 'dist/'}
]
}
},
替换:{
地区:{
选项:{
模式:[
{
匹配:'/script src=“/g”,
替换:函数(){
'asp:PlaceHolder runat=“server”url=“”;
}
}
]
},
档案:[
{expand:true,flatten:true,src:['/index.html'],dest:'dist/'}
]
}
},
您没有提到当前得到的结果,因此我假设您看到的脚本标记只是被截断或“未定义”在脚本标记的剩余部分前面
我发现测试正则表达式很有用
在Matthew Kime的帮助下,尝试将您的匹配项更改为-
”/,我成功地实现了这一点。在我的正则表达式中,我必须搜索两个句点,因为我使用grunt rev来对文件进行版本设置。我还使用去掉扩展名的文件名来动态命名文件
这是我能够得出的结论
// replace script tags to imod placeholders
replace: {
dist: {
options: {
patterns: [
{
match: /<script src=\"(.*\/)(.+?)\.(.+?)\.js\"><\/script>/g,
replacement: '<imod:ScriptPlaceHolder id="$2$3" type="FileInclude" url="$1$2.$3.js" runat="server"></imod:ScriptPlaceHolder>'
}
]
},
files: [
{expand: true, flatten: true, src: ['<%= config.dist %>/index.html'], dest: 'dist/'}
]
}
},
//将脚本标记替换为imod占位符
替换:{
地区:{
选项:{
模式:[
{
匹配://g,
替换:“”
}
]
},
档案:[
{expand:true,flatten:true,src:['/index.html'],dest:'dist/'}
]
}
},
您需要退货的说法完全正确。我会把你包含的链接加入书签,这非常有用。啊,我用那个正则表达式处理了你的数据提取。