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

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

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

Javascript过滤:

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

Ruby过滤: 

# Example:Ruby Script
def shield_script(str)
  if str =~ /(]*>[/w/W]*?)/
    return str.gsub(/(]*>[/w/W]*?)/, '')
  end
end
html = <哈哈
   
   
HTML_END puts shield_script(html) # 输出结果: #
哈哈 # #
# #
#

 

你可能感兴趣的:(JavaScript)