मुझे @ NateFerrero के उत्तर के विस्तार के लिए एक अलग उत्तर लिखने में बुरा लग रहा है , लेकिन मुझे नहीं लगता कि उनका उत्तर संपादित करना उचित है, इसलिए कृपया upNote @NateFerrero को उत्तर दें यदि यह उत्तर आपके लिए उपयोगी था।
tl; dr- उन लोगों के लिए जो अपने heredoc के अंदर ब्लॉक कमेंट्स का उपयोग करना चाहते हैं ...
मुझे मुख्य रूप से CSS के एक ब्लॉक को स्टोर करने के लिए जावास्क्रिप्ट हेरेडोक्स की आवश्यकता है, जैसे
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;
}
*/});
जैसा कि आप देख सकते हैं, मैं अपने सीएसएस पर टिप्पणी करना पसंद करता हूं, और दुर्भाग्य से (सिंटैक्स हाइलाइटिंग द्वारा संकेत दिया गया) पहले */
समग्र टिप्पणी को समाप्त करता है, हेरेडोक को तोड़ता है।
इस विशिष्ट उद्देश्य (CSS) के लिए, मेरा समाधान जोड़ना था
.replace(/(\/\*[\s\S]*?\*) \//g, '$1/')
@ NateFerrero के अंदर श्रृंखला के लिए heredoc
; पूर्ण रूप में:
function heredoc (f) {
return f.toString().match(/\/\*\s*([\s\S]*?)\s*\*\//m)[1].replace(/(\/\*[\s\S]*?\*) \//g, '$1/');
};
और जो अंतरिक्ष जोड़कर इसका इस्तेमाल *
और/
"आंतरिक" ब्लॉक टिप्पणियों के लिए , जैसे:
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
बस पाता है /* ... * /
और बनाने के लिए अंतरिक्ष को हटा/* ... */
, जिससे हियरडॉक संरक्षण जब तक कहा जाता है।
आप निश्चित रूप से टिप्पणियों का उपयोग पूरी तरह से हटा सकते हैं
.replace(/\/\*[\s\S]*?\* \//g, '')
//
यदि आप उन्हें श्रृंखला में जोड़ते हैं तो आप टिप्पणियों का समर्थन भी कर सकते हैं :
.replace(/^\s*\/\/.*$/mg, '')
इसके अलावा, आप के बीच एक रिक्त स्थान के अलावा अन्य कुछ कर सकते हैं *
और /
एक तरह -
:
/**
* Nuke rounded corners.
*-/
यदि आप उचित रूप से regex को अपडेट करते हैं:
.replace(/(\/\*[\s\S]*?\*)-\//g, '$1/')
^
या हो सकता है कि आप सिंगल स्पेस के बजाय व्हॉट्सएप की मनमानी रकम चाहें?
.replace(/(\/\*[\s\S]*?\*)\s+\//g, '$1/')
^^^