好吧,我有兩個HTML註釋是這樣的:正則表達式的Javascript - 刪除兩個HTML之間的文本評論
<!--Delete-->
Blah blah
blah blah
<!--Delete-->
我想刪除它(包括評論,任何字符和換行符)。順便說一句,我正在使用JavaScript和Grunt進行更換。
感謝
好吧,我有兩個HTML註釋是這樣的:正則表達式的Javascript - 刪除兩個HTML之間的文本評論
<!--Delete-->
Blah blah
blah blah
<!--Delete-->
我想刪除它(包括評論,任何字符和換行符)。順便說一句,我正在使用JavaScript和Grunt進行更換。
感謝
正則表達式
使用下面的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
執行以下操作:
src
文件夾index.html
文件。<!--Delete-->
中的任何內容,包括評論本身。dist
文件夾寫入新的index.html
(不包括不需要的內容)。srcDocPath
和outputDocPath
的值都可能需要根據您的項目要求重新定義。
編輯更新的正則表達式中,也允許聯註釋使用。例如:
<p>This text remains <!--Delete-->I get deleted<!--Delete-->blah blah</p>
在下面的正則表達式, 我們用一個字請與 \<\!
=>開始逃逸=><!
然後(.)*
任何東西
後 然後跳過第一個標籤結束\-\>
然後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,""));