ASP页面脏话过滤实现

需积分: 1 0 下载量 104 浏览量 更新于2024-09-14 收藏 539B TXT 举报
"ASP页面验证是否存在脏话" 在ASP(Active Server Pages)开发中,有时候我们需要确保用户输入的数据是安全的,避免包含不适当或恶意的词汇,这通常被称为脏话过滤或者敏感词检查。本示例代码展示了如何在ASP页面上实现一个简单的脏话过滤功能,以防止用户在提交表单时输入脏话或敏感词汇。 首先,我们看到代码中有一个JavaScript的部分,用于客户端验证。这部分代码的作用是在用户提交表单之前,检查输入字段`name1`(假设对应表单元素的name属性为"name")的值是否包含脏话。`valname1=document.form.name.value;`这一行获取了表单中name字段的值。然后,使用`indexOf()`方法来检查这个值中是否存在脏话字符串,如果存在,`indexOf("")>-1`则返回true,表示找到了脏话。此时,会弹出警告对话框提示用户,并将焦点重新设置到name字段,阻止表单提交,代码如下: ```javascript if(name1.indexOf("")>-1){ alert("含有脏话!"); document.form.name.focus(); return false; } ``` 接着,是ASP服务器端的脏话过滤函数`ChkBadWords(fString)`。这个函数接收一个字符串参数`fString`,即用户输入的数据。在函数内部,首先定义了一个字符串变量`BadWords`,它包含了用竖线分隔的脏话列表。这里以`"|||"`作为示例,实际应用中应替换为具体的脏话词汇。 ```vbscript Function ChkBadWords(fString) Dim BadWords, bwords, i BadWords = "|||||" '这里应替换为实际的脏话列表 ``` 接下来,我们检查`BadWords`和`fString`是否都不为空,如果都不为空,则进行处理。`IsNull()`函数用于判断变量是否为空。 ```vbscript If (Not(IsNull(BadWords) Or IsNull(fString))) THEN ``` 然后,使用`Split()`函数将`BadWords`按照竖线分隔成数组`bwords`,这样我们就可以遍历每个脏话词汇。 ```vbscript bwords = Split(BadWords, "|") '将脏话列表拆分为数组 ``` 通过`For`循环,遍历数组`bwords`中的每个脏话词汇,使用`Replace()`函数将`fString`中的脏话替换为星号`*`,以达到模糊化处理的效果。 ```vbscript For i = 0 To UBound(bwords) fString = Replace(fString, bwords(i), String(Len(bwords(i)), "*")) Next ``` 最后,将处理后的字符串作为函数的返回值。 ```vbscript ChkBadWords = fString END IF End Function ``` 总结起来,这段ASP代码实现了客户端与服务器端双重的脏话过滤机制。客户端的JavaScript部分提供了初步的检查,可以提高用户体验,防止不必要的服务器请求。而服务器端的ASP代码则提供了更严谨的过滤,确保即使绕过客户端验证,也能在服务器端进行有效过滤。在实际应用中,应根据项目需求,完善脏话列表,并考虑性能优化,例如使用哈希表等数据结构提高查找效率。