用空 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 文本)。
的|用于匹配备用正则表达式,如果先前的正则表达式不匹配
result = text.replace(/---.*|<br>\s*This email has.*|<a\b[^>]*>.*?(http:\/\/www\.avast\.com).*?<\/a>/gi, "");
/(<br>){3}[\s\S]+?avast.com<\/a>/
应该适合你:
(<br>){3}
正好匹配 3 个 br 标签
[\s\S]
匹配任何内容,包括换行符(基本上是说 space 的任何字符和不是 space 的任何字符,即所有字符)
+
表示匹配前面的一个或多个条件(任何字符)
?
表示匹配尽可能少的最后一个条件(任何字符)以达到下一个条件
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"> </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>
</div>
如何替换不需要的页脚文本?
---
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 文本)。的|用于匹配备用正则表达式,如果先前的正则表达式不匹配
result = text.replace(/---.*|<br>\s*This email has.*|<a\b[^>]*>.*?(http:\/\/www\.avast\.com).*?<\/a>/gi, "");
/(<br>){3}[\s\S]+?avast.com<\/a>/
应该适合你:
(<br>){3}
正好匹配 3 个 br 标签[\s\S]
匹配任何内容,包括换行符(基本上是说 space 的任何字符和不是 space 的任何字符,即所有字符)+
表示匹配前面的一个或多个条件(任何字符)?
表示匹配尽可能少的最后一个条件(任何字符)以达到下一个条件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"> </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>
</div>