如何过滤中国站长站(chianz)文章干扰码(2)

来源:asp之家 时间:2008-01-04 20:14:00 

下面讲一下具体的实现方法:

显然要过滤掉这些规律的干扰码我们必须请可爱的正则表达式出马,让它来帮忙打扫打扫。这里大家如果对正则表达式不是很了解可以先阅读:《正则表达式30分钟入门教程

一、客户端javascript实现方法:

我们知道在添加编辑文章的后台,一般都是用在线编辑器。所以过滤干扰码就是过滤写在在线编辑器中的内容。

先设计一个过滤干扰码的按钮:


<input type="button" value="过滤干扰码" onclick="doclear()" > 


点击按钮后就会执行doclear()函数来清除干扰码。

首先就是要用js代码取得文章的内容:


var aspxhome = EditorId.EditorContentId.document.body.innerHTML; 


这里EditorId就是调用编辑器的框架页的id,EditorContentId就是编辑器中作为容器的页面id。

当然如果编辑器提供了一些便捷的调用函数,我们就可以直接使用。


function doclear(){
// 读取编辑器内容
var aspxhome = EditorId.EditorContentId.document.body.innerHTML; 
//下面使用正则表达式过滤干扰代码,当然如果以后增加了新的干扰码方式,再相应的增加或修改一下代码即可。
aspxhome = aspxhome.replace(/(<DIV class=(.+?)>).+?<\/DIV>/ig, "") ;
aspxhome = aspxhome.replace(/(<SPAN class=(.+?)>).+?<\/SPAN>/ig, "") ;
aspxhome = aspxhome.replace(/(<P class=(.+?)>).+?<\/P>/ig, "") ;
aspxhome = aspxhome.replace(/(<FONT color=(.+?)>).+?<\/FONT>/ig, "") ;
//写过滤后的内容到编辑器中
EditorId.EditorContentId.document.body.innerHTML=aspxhome;


二、服务器端asp过滤方法:

服务器端获取文章内容就简单了,不罗嗦了!相关文章推荐:ASP中RegExp对象正则表达式语法及相关例子

代码如下:


strContent=request("content")'根据实际情况修改为文章内容 
Set Are = New RegExp
Are.IgnoreCase = True
Are.Global = True 
Are.Pattern = "(<div class=(.+?)<\/div>)"
strContent = Are.Replace(strContent, "")
Are.Pattern = "(<span class=(.+?)<\/span>)"
strContent = Are.Replace(strContent, "") 
Are.Pattern = "(<p class=(.+?)<\/p>)"
strContent = Are.Replace(strContent, "") 
Are.Pattern = "(<font color=(.+?)<\/font>)"
strContent = Are.Replace(strContent, "") 
'程序运行到这里文章干扰码就过滤干净了 
Set Are = Nothing 


总结

好了,两种方法介绍完毕了,可能你已经发现了,使用这种方法有一个缺点,就是会过滤掉所有的正则表达式中匹配的字符,而这些字符也许并不都是干扰码。 所以我这个方法并不完美。

不过在过滤干扰码之前我们只要先看看文章源代码,看看是否有其他正常的文字可能被清理,如果有修改一下就可以了。有什么问题欢迎讨论!

标签:干扰码,中国站长站,正则表达式,javascript
0
投稿

猜你喜欢

  • 用PyInstaller把Python代码打包成单个独立的exe可执行文件

    2022-12-02 09:15:11
  • 艺术和设计之间的差别

    2010-11-17 19:28:00
  • mysql数据库远程访问设置方法

    2024-01-14 11:25:34
  • python ansible服务及剧本编写

    2022-11-18 02:51:20
  • 如何在python中判断变量的类型

    2022-05-03 03:35:06
  • 将python文件打包exe独立运行程序方法详解

    2021-07-03 02:26:41
  • 浅谈对pytroch中torch.autograd.backward的思考

    2023-10-28 13:21:44
  • 使用python检查yaml配置文件是否符合要求

    2021-06-23 05:27:53
  • 用C语言操作MySQL数据库的通用方法

    2024-01-12 17:22:45
  • Python一行代码快速实现程序进度条示例

    2022-07-07 07:22:26
  • 浏览器中的内存泄露

    2008-05-03 16:53:00
  • 深入解析JavaScript中的arguments对象

    2024-05-09 14:50:44
  • php+js实现倒计时功能

    2023-11-12 17:16:29
  • 详解Mysql双机热备和负载均衡的实现步骤

    2024-01-15 09:00:50
  • Python命名空间的本质和加载顺序

    2022-06-30 20:56:21
  • Python中遍历列表的方法总结

    2023-11-01 19:11:11
  • Python变量格式化输出实现原理解析

    2023-02-12 23:13:51
  • 如何用Python对数学函数进行求值、求偏导

    2023-10-13 04:58:01
  • 浅谈Vue3 defineComponent有什么作用

    2024-05-05 09:25:03
  • python 读取txt,json和hdf5文件的实例

    2022-02-18 10:43:34
  • asp之家 网络编程 m.aspxhome.com