【问题标题】:Replacing a HTML tag with Grunt-Replace用 Grunt-Replace 替换 HTML 标签
【发布时间】:2015-03-12 14:23:15
【问题描述】:

我正在为工作编写一个 grunt 文件。我们在本地工作,我们的文件在 html 中,当我们将它们实现到我们的 CMS 中时,它们需要转换为 aspx。

我正在尝试用<imod:ScriptPlaceHolder id="#nameOfFile" runat="server" type="FileInclude" url="#pathToFile"></imod:ScriptPlaceHolder> 替换所有<script scr=""></script> 实例

我正在使用“grunt-replace”:“^0.8.0”。此任务在 default 和 build 下注册。我已经尝试使用正则表达式来匹配名称,并且我已经查看文档太久了。这是我的带有替换的 grunt 文件的样子:

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/'}
        ]
      }
    },

【问题讨论】:

    标签: javascript regex gruntjs build-process


    【解决方案1】:

    你没有提到你目前得到的结果,所以我假设你看到脚本标签被简单地截断或“未定义”附加到脚本标签的剩余位。

    我发现http://www.regexr.com/ 对测试正则表达式很有用。

    尝试将匹配更改为 - '/&lt;script\ssrc=".+&lt;/script&gt;/g'

    另外,您的替换函数需要返回一个值。显然,如果您要替换为静态字符串,那么您可以使用字符串作为参数。

    【讨论】:

    • 您完全正确地需要退货。我会将您包含的链接添加为书签,这非常有帮助。
    • 啊,我用那个正则表达式踩到了你的数据提取。
    【解决方案2】:

    在 Matthew Kime 的帮助下,我得以完成这项工作。在我的正则表达式中,我必须搜索 2 个句点,因为我正在使用 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/'}
            ]
          }
        },
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-05
      • 1970-01-01
      相关资源
      最近更新 更多