Yalnızca @ NateFerrero'nun cevabının bir uzantısı için ayrı bir cevap yazmaktan çekiniyorum , ancak cevabını düzenlemenin de uygun olduğunu düşünmüyorum, bu yüzden bu cevap sizin için yararlıysa lütfen @NateFerrero'ya oy verin.
tl; dr-For blok yorumlar kullanmak isteyenler içeride kendi yorumlu metin ...
Ben esas olarak CSS, bloğunu depolamak için JavaScript heredoc gerekli örn
var css = heredoc(function() {/*
/**
* Nuke rounded corners.
*/
body div {
border-top-left-radius: 0 !important;
border-top-right-radius: 0 !important;
border-bottom-right-radius: 0 !important;
border-bottom-left-radius: 0 !important;
}
*/});
Ancak görebileceğiniz gibi */
, CSS'mi yorumlamayı seviyorum ve maalesef (sözdizimi vurgulamasının işaret ettiği gibi) ilk yorum genel yorumu sonlandırarak heredocu bozuyor.
Bu özel amaç için (CSS), benim çözümüm eklemek oldu
.replace(/(\/\*[\s\S]*?\*) \//g, '$1/')
@ NateFerrero'nun içindeki zincire heredoc
; eksiksiz biçimde:
function heredoc (f) {
return f.toString().match(/\/\*\s*([\s\S]*?)\s*\*\//m)[1].replace(/(\/\*[\s\S]*?\*) \//g, '$1/');
};
ve arasına boşluk ekleyerek kullanmak *
ve /
böylece gibi "iç" blok yorum, için:
var css = heredoc(function() {/*
/**
* Nuke rounded corners.
* /
body div {
border-top-left-radius: 0 !important;
border-top-right-radius: 0 !important;
border-bottom-right-radius: 0 !important;
border-bottom-left-radius: 0 !important;
}
*/});
replace
Basitçe bulur /* ... * /
ve marka için boşluk kaldırır /* ... */
verilene kadar bu şekilde yorumlu metin koruyarak.
Şunu kullanarak yorumları elbette tamamen kaldırabilirsiniz.
.replace(/\/\*[\s\S]*?\* \//g, '')
Ayrıca //
, zincire eklerseniz yorumları da destekleyebilirsiniz :
.replace(/^\s*\/\/.*$/mg, '')
Ayrıca, *
ve arasındaki tek boşluk dışında bir şey de yapabilirsiniz /
, örneğin -
:
/**
* Nuke rounded corners.
*-/
regex'i uygun şekilde güncellerseniz:
.replace(/(\/\*[\s\S]*?\*)-\//g, '$1/')
^
Ya da belki tek bir boşluk yerine rastgele miktarda beyaz boşluk istersiniz?
.replace(/(\/\*[\s\S]*?\*)\s+\//g, '$1/')
^^^