我从Word生成了一些丑陋的HTML,我想从中删除所有HTML注释.
HTML看起来像这样:
<!--[if gte mso 9]><xml> <o:OfficeDocumentSettings> <o:RelyOnVML/> <o:AllowPNG/> </o:OfficeDocumentSettings> </xml><![endif]--><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves/> <w:TrackFormatting/> <w:HyphenationZone>21</w:HyphenationZone> <w:PunctuationKerning/> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF/> <w:LidThemeOther>NO-BOK</w:LidThemeOther> <w:LidThemeAsian>X-NONE</w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> <w:Compatibility> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:SplitPgBreakAndParaMark/> <w:EnableOpenTypeKerning/> <w:DontFlipMirrorIndents/> <w:OverrideTableStyleHps/> </w:Compatibility> <m:mathPr> <m:mathFont m:val="Cambria Math"/> <m:brkBin m:val="before"/> <m:brkBinSub m:val="--"/> <m:smallFrac m:val="off"/> <m:dispDef/> <m:lMargin m:val="0"/> <m:rMargin m:val="0"/> <m:defJc m:val="centerGroup"/> <m:wrapIndent m:val="1440"/> <m:intLim m:val="subSup"/> <m:naryLim m:val="undOvr"/> </m:mathPr></w:WordDocument> </xml><![endif]-->
Run Code Online (Sandbox Code Playgroud)
..我正在使用的正则表达式就是这个
html = html.replace(/<!--(.*?)-->/gm, "")
Run Code Online (Sandbox Code Playgroud)
但似乎没有匹配,字符串不变.
我错过了什么?
我需要使用JavaScript RegExp对象从JavaScript源中删除所有JavaScript注释.
我需要的是RegExp的模式.
到目前为止,我发现了这个:
compressed = compressed.replace(/\/\*.+?\*\/|\/\/.*(?=[\n\r])/g, '');
Run Code Online (Sandbox Code Playgroud)
此模式适用于:
/* I'm a comment */
Run Code Online (Sandbox Code Playgroud)
或者:
/*
* I'm a comment aswell
*/
Run Code Online (Sandbox Code Playgroud)
但似乎不适用于内联:
// I'm an inline comment
Run Code Online (Sandbox Code Playgroud)
我不是RegEx的专家和它的模式,所以我需要帮助.
另外,我想要一个RegEx模式,它将删除所有那些类似HTML的注释.
<!-- HTML Comment //--> or <!-- HTML Comment -->
Run Code Online (Sandbox Code Playgroud)
还有那些条件HTML注释,可以在各种JavaScript源中找到.
谢谢.
我正在寻找一些工具来从Javascript源中删除冷却.我能够谷歌一些,但没有一个满足以下要求:其他所有应该保持原样,特别是没有删除空格,但如果注释占一整行,该行也被删除.
不久之后,我希望能够从带有注释的格式良好的源到具有相同格式的源而无需注释.将删除仅包含注释的行,并将跟踪注释与尾随空格一起删除.其余的都保持不变.
你知道这种工作的工具吗?
编辑:我试着更具体.使用正则表达式是不可能的,因为字符//或者/*也可以出现在字符串,正则表达式等内部.
该工具应该接受这个输入
var a = true;
//the following code is every useful
var b = 2;//really, really useful
/**
Never, ever do this
var c = 3;
*/
var d = 4;
Run Code Online (Sandbox Code Playgroud)
并给出这个输出
var a = true;
var b = 2;
var d = 4;
Run Code Online (Sandbox Code Playgroud)