用空 space 替换不需要的页脚文本

Replace unwanted footer text with empty space

如何替换不需要的页脚文本?

 ---  
This email has been checked for viruses by Avast antivirus software.  
http://www.avast.com

html 代码页脚:

     <span class="Apple-converted-space"> </span><br><br><br>---<span class="Apple-converted-space"> </span><br>
This email has been checked for viruses by Avast antivirus software.<span class="Apple-converted-space"> </span><br>
<a href="http://www.avast.com" style="text-decoration: none; color: rgb(22, 54, 87); ">
http://www.avast.com</a></span></span> 

快完成了,但我觉得代码可以放在一行上

document.getElementById('footer').innerHTML = data;
data = data.replace(/---.*/gi, '');
data = data.replace((/(<br>This email has.*).+?/gi, '');
data = data.replace((/(http:\/\/www\.avast\.com)<\/a>?(<br\s*\/?>{2,3})?/gi, '');
document.getElementById('footer').innerHTML = data;

在论坛中找到的示例

data = data.replace(/(<br>){2,3}---(<br>This).+?(avast\.com)<\/a>( ---)?/gi, '');

上面的代码可以在纯 html 中工作,它不适用于 WebKit 生成的代码

正则表达式:

---.*|<br>\s*This email has.*|<a\b[^>]*>.*?(http:\/\/www\.avast\.com).*?</a>
  • ---.* ==> 匹配来自的文本:data.replace(/---.*/gi, '');

  • <br>\s*This email has.* ==> Matches text from: data.replace((/(<br>This email has.*).+?/gi, ''); //修正以匹配 <br>
    之后的空白字符 作为替代方案,您可以这样写:<br>\s*This email has[^<]* 在行尾或下一个标记的开头停止。

  • <a\b[^>]*>.*?http:\/\/www\.avast\.com.*?</a> ==> 匹配名称中包含 "http://www.avast.com" 的 link(link 文本)。

  • 的|用于匹配备用正则表达式,如果先前的正则表达式不匹配

Regex Test


result = text.replace(/---.*|<br>\s*This email has.*|<a\b[^>]*>.*?(http:\/\/www\.avast\.com).*?<\/a>/gi, "");

/(<br>){3}[\s\S]+?avast.com<\/a>/ 应该适合你:

  1. (<br>){3} 正好匹配 3 个 br 标签
  2. [\s\S] 匹配任何内容,包括换行符(基本上是说 space 的任何字符和不是 space 的任何字符,即所有字符)
  3. + 表示匹配前面的一个或多个条件(任何字符)
  4. ? 表示匹配尽可能少的最后一个条件(任何字符)以达到下一个条件
  5. avast.com<\/a>/ 完全匹配这个字符串

function removeFooter(){

  var elm = document.getElementById('footer');
  elm.innerHTML = elm.innerHTML.replace(/(<br>){3}[\s\S]+?avast.com<\/a>/, "repalced footer text");

}
#msgBody{
  height:55px;
  width:300px;
  background-color:#999999;
  margin-top:10px;
  
  }
<input type="button" onclick="removeFooter()" value="Remove Footer"/>
<div id="msgBody"></div>
<div id="footer">
<br><br><br>
 <span class="Apple-converted-space">&nbsp;</span><br>
  This email has been checked for viruses by Avast antivirus software.
<span class="Apple-converted-space">&nbsp;</span><br>
<a href="http://www.avast.com" style="text-decoration: none; color: rgb(22, 54, 87); "> http://www.avast.com</a>
</div>