2017-02-15 120 views

回答

0

正則表達式

使用下面的JavaScript正則表達式匹配您的自定義的多個實例.html意見,並在他們裏面的內容:如在

/\<\!\-\-Delete\-\-\>((.|[\n|\r|\r\n])*?)\<\!\-\-Delete\-\-\>[\n|\r|\r\n]?(\s+)?/g 

然後你Gruntfile.js內註冊自定義Function Task以下要點:

Gruntfile.js

module.exports = function (grunt) { 

    grunt.initConfig({ 
     // ... Any other Tasks 
    }); 

    grunt.registerTask('processHtmlComments', 
     'Remove content from inside the custom delete comments', 
     function() { 
      var srcDocPath = './src/index.html', // <-- Define src path to .html 
       outputDocPath = './dist/index.html',// <-- Define dest path for .html 

       doc = grunt.file.read(srcDocPath, {encoding: 'utf8'}), 
       re = /\<\!\-\-Delete\-\-\>((.|[\n|\r|\r\n])*?)\<\!\-\-Delete\-\-\>[\n|\r|\r\n]?(\s+)?/g, 
       contents = doc.replace(re, ''); 

      grunt.file.write(outputDocPath, contents, {encoding: 'utf8'}); 
      console.log('Created file: ' + outputDocPath); 
     }); 

    grunt.registerTask('default', [ 
     'processHtmlComments' 
    ]); 

}; 

其他注意事項

目前通過CLI運行$ grunt執行以下操作:

  1. 讀取一個名爲從src文件夾index.html文件。
  2. 刪除開始和結束自定義評論<!--Delete-->中的任何內容,包括評論本身。
  3. dist文件夾寫入新的index.html(不包括不需要的內容)。

srcDocPathoutputDocPath的值都可能需要根據您的項目要求重新定義。


編輯更新的正則表達式中,也允許聯註釋使用。例如:

<p>This text remains <!--Delete-->I get deleted<!--Delete-->blah blah</p> 
0

在下面的正則表達式, 我們用一個字請與
\<\! =>開始逃逸=><!
然後(.)*任何東西
後 然後跳過第一個標籤結束\-\>
然後anythig (.)*
然後在評論結束時\-\-\>
並檢查gl obal match g;

var text="<div>hello there</div><!--Delete-->Blah blahblah blah<!--Delete--><span>Hello world</span>"; 
 
var re=/\<\!(.)*\-\>(.)*\-\-\>/g; 
 
console.log(text.replace(re,""));

但一般HTML註釋模樣

<!--comments blah blah blah //--> 

的是,這裏是另一個正則表達式

var text = "<span>Hi there</span><div>Hello world</div><!--comments blah blah blah //--><span>something</span>"; 
 
var re=/\<\!\-(.)*\/\/\-\-\>/g; 
 
console.log(text.replace(re,""));

相關問題