正则表达式替换多行字符串

来源:互联网 发布:数据可视化原理 编辑:程序博客网 时间:2024/05/16 15:44

处理字符串,尤其是复杂且很长的字符串,正则表达式当然是首选。。。

在博客、论坛中在HTML编辑器中写文章时,过滤一些危险代码是非常且有必要的。

Javascript过滤:

// 替换代码中的Script代码function shield_script(str) {    if(str == null || str == '') return '';    str = str.replace(/<script[^>]//*>/ig, '<!-- Script Code -->');    // 过滤包含多行的script代码    str = str.replace(/(<script[^>]*>[/w/W]*?<//script>)/igm, '<!-- Script Code -->');    return str;}// 替换代码中的Input和Button控件function shield_input(str) {    if(str == null || str == '') return '';    str = str.replace(/<button[^>]//*>/igm, '<!-- Button Code -->');    str = str.replace(/<input[^>]//*>/igm, '<!-- Input Code -->');    str = str.replace(/(<button[^>]*>[/w/W]*?<//button>)/igm, '<!-- Button Code -->');    return str;}// 替换代码中的onclick代码function shield_click(str) {    if(str == null || str == '') return '';    return str.replace(/(/s*onclick=[/"/'][/w/W]*?[/"/']/s*)/igm, '');}

Ruby过滤: 

# Example:Ruby Scriptdef shield_script(str)  if str =~ /(<script[^>]*>[/w/W]*?<//script>)/    return str.gsub(/(<script[^>]*>[/w/W]*?<//script>)/, '<!-- SCRIPT CODE -->')  endendhtml = <<HTML_END<div><span>哈哈</span>   <script type="text/javascript">   alert("跳转到网易");   location.href="http://www.163.com";   </script>   <div id="list">       <script>document.write('<a href="http://163.com">网易</a>');</script>   </div></div>HTML_ENDputs shield_script(html)# 输出结果:# <div><span>哈哈</span>#    <!-- SCRIPT CODE -->#    <div id="list">#        <!-- SCRIPT CODE -->#    </div># </div>