asp智能脏话过滤系统v1.0

 更新时间:2024年07月01日 11:49:10   投稿:mdxy-dxy  
功能比较不错的脏话过滤系统,就是代码太长了,具体算法大家可以自己研究下

ivv=ivv+1
icc=0
zang_data(ivv,0,0)="他|她|它"
icc=icc+1
zang_data(ivv,icc,0)=""
zang_data(ivv,icc,1)=0
'----------------------------- 

ivv=ivv+1
icc=0
zang_data(ivv,0,0)="装"
icc=icc+1
zang_data(ivv,icc,0)=""
zang_data(ivv,icc,1)=0
'----------------------------- 


ivv=ivv+1
icc=0
zang_data(ivv,0,0)=""
icc=icc+1
zang_data(ivv,icc,0)="的"
zang_data(ivv,icc,1)=0
'----------------------------- 


ivv=ivv+1
icc=0
zang_data(ivv,0,0)=""
icc=icc+1
zang_data(ivv,icc,0)="*"
zang_data(ivv,icc,1)=0

'----------------------------- 
ivv=ivv+1
icc=0
zang_data(ivv,0,0)=""
icc=icc+1
zang_data(ivv,icc,0)=""
zang_data(ivv,icc,1)=0
'----------------------------- 

ivv=ivv+1
icc=0
zang_data(ivv,0,0)="找死"
icc=icc+1
zang_data(ivv,icc,0)="*"
zang_data(ivv,icc,1)=0
'----------------------------- 
ivv=ivv+1
icc=0
zang_data(ivv,0,0)="想死"
icc=icc+1
zang_data(ivv,icc,0)=""
zang_data(ivv,icc,1)=4
'----------------------------- 

ivv=ivv+1
icc=0
zang_data(ivv,0,0)="想不想"
icc=icc+1
zang_data(ivv,icc,0)=""
zang_data(ivv,icc,1)=4

'----------------------------- 
ivv=ivv+1
icc=0
zang_data(ivv,0,0)="是不是"
icc=icc+1
zang_data(ivv,icc,0)=""
zang_data(ivv,icc,1)=4


'----------------------------- 
ivv=ivv+1
icc=0
zang_data(ivv,0,0)=""
icc=icc+1
zang_data(ivv,icc,0)="*"
zang_data(ivv,icc,1)=0




'=====end 脏话数据库=================================================




sayyssx=lcase(sayyyyx)

'第一层循环
for zang_lenav=0 to zang_len-1

aassdaks=trim(zang_data(zang_lenav,0,0))


if aassdaks<>"" then
aassdaksa=split(aassdaks,"|")
'第二层循环,针对 "dsf|2343|34234|df"之类中的各元素扫描
for aassdxsx=0 to ubound(aassdaksa)
sssaac=lcase(trim(aassdaksa(aassdxsx)))



have_di2cen=1
count_lllppt=0
'针对 如果 存在重复的多个类似的脏话,则do while ,直到过滤完
do while have_di2cen=1


count_lllppt=count_lllppt+1
if count_lllppt>9999 then exit do '防止自循环

have_di2cen=0




if instr(1,sayyssx,sssaac,1)<>0 then

posfd=instr(1,sayyssx,sssaac,1)

have_di2cen=1


'第三层循环
for zang_yufa_xiangguan_lenav=1 to zang_yufa_xiangguan_list_max-1
aassdakc=trim(zang_data(zang_lenav,zang_yufa_xiangguan_lenav,0))
aassdakcc=clng(zang_data(zang_lenav,zang_yufa_xiangguan_lenav,1))


need_n2=1


if aassdakc="" and zang_yufa_xiangguan_lenav=1  then
if posfd-1<1 then
sstrt=""
else
sstrt=mid(sayyssx,1,posfd-1)
end if
if posfd+len(sssaac)>len(sayyssx) then
enddt=""
else
enddt=mid(sayyssx,posfd+len(sssaac),len(sayyssx)-(posfd+len(sssaac))+1)
end if
sayyssx=sstrt&thzzzf&enddt

need_n2=0
exit for
end if


if aassdakc<>"" then
aassdakcyy=split(aassdakc,"|")


'第四层循环,针对 "dsf|2343|34234|df"之类中的各元素扫描
for aassdakcx=0 to ubound(aassdakcyy)
sssaacc=lcase(trim(aassdakcyy(aassdakcx)))

thzzzf=heihack

'--1--
if sssaacc="" and aassdakcx=0 and zang_yufa_xiangguan_lenav=1 then


if posfd-1<1 then
sstrt=""
else
sstrt=mid(sayyssx,1,posfd-1)
end if
if posfd+len(sssaac)>len(sayyssx) then
enddt=""
else
enddt=mid(sayyssx,posfd+len(sssaac),len(sayyssx)-(posfd+len(sssaac))+1)
end if
sayyssx=sstrt&thzzzf&enddt



need_n2=0
exit for
end if



'--2--

if sssaacc="*" then


if posfd-1<1 then
sstrt=""
else
sstrt=mid(sayyssx,1,posfd-1)
end if
if posfd+len(sssaac)>len(sayyssx) then
enddt=""
else
enddt=mid(sayyssx,posfd+len(sssaac),len(sayyssx)-(posfd+len(sssaac))+1)
end if
sayyssx=sstrt&thzzzf&enddt

need_n2=0
exit for
end if


'--3--
ttrrrue=0
for fdfdfd_scan=1 to aassdakcc+1

ttrrrue=ttrrrue+1

if posfd+len(sssaac)-1++len(sssaacc)+ttrrrue-1>len(sayyssx) then exit for


'以下用于忽略字与字间的空格性的字符,空格性的字符详见konggexx变量的值
kkkgeee=split(konggexx,"$_kongge_$")
for kkkgeeei=0 to ubound(kkkgeee)
if mid(sayyssx,posfd+len(sssaac)-1+ttrrrue,1)=kkkgeee(kkkgeeei) then
fdfdfd_scan=fdfdfd_scan-1
exit for
end if
next

if mid(sayyssx,posfd+len(sssaac)-1+ttrrrue,len(sssaacc))=sssaacc then

fdzi_pos=posfd+len(sssaac)-1+ttrrrue



if posfd-1<1 then
sstrt=""
else
sstrt=mid(sayyssx,1,posfd-1)
end if
if posfd+len(sssaac)>len(sayyssx) then
enddt=""
else
enddt=mid(sayyssx,posfd+len(sssaac),len(sayyssx)-(posfd+len(sssaac))+1)
end if
sayyssx=sstrt&thzzzf&enddt


new_fdzi_pos=fdzi_pos+(len(thzzzf)-len(sssaac))


if new_fdzi_pos-1<1 then
sstrt=""
else
sstrt=mid(sayyssx,1,new_fdzi_pos-1)
end if
if new_fdzi_pos+len(sssaacc)>len(sayyssx) then
enddt=""
else
enddt=mid(sayyssx,new_fdzi_pos+len(sssaacc),len(sayyssx)-(new_fdzi_pos+len(sssaacc))+1)
end if
sayyssx=sstrt&thzzzf&enddt

need_n2=0
exit for

end if
next



if need_n2=0 then exit for


'执行到这,说明是 第四层循环里 dsf|2343|34234|df之类中 的上一项未匹配,而继续下一项,否则已经跳
出本循环,这也就是need_n2变量的作用,当然也有可能再次进入 同一sssaac变量值的 本循环,如果
have_di2cen=1的话
next 

end if

'执行到这说明第四层循环时  没找到匹配的脏话

if need_n2=0 then exit for
'执行到这,说明是 第三层循环里 数组元素中 的上一项未匹配,而继续下一项,否则已经跳出本循环,这也
就是need_n2变量的作用,当然也有可能再次进入 同一sssaac变量值的 本循环,如果have_di2cen=1的话

next



if need_n2=1 then '第三层循环 扫描到末尾,没找到匹配的脏话,不用再do while 了
exit do
end if

end if

 
loop


'第二层循环,针对 "dsf|2343|34234|df"之类中的各元素扫描
next


end if


'第一层循环
next
ND_say_what=sayyssx

end function

'end 智能脏话过滤系统v1.0



%>


<br>
<br><br>
智能脏话过滤系统v1.0 ----by 柏拉图的程序,qq657697290<hr><br>
<form action=a.asp method=post>



<textarea name=aaas cols=50 rows=10><% if request("aaas")="" then%>
2334234234,3434
<%else%>
<%=trim(request("aaas"))%>
<%end if%>
</textarea>
<br>
<input type=submit value="开始智能脏话过滤">



<br><br>
<hr>过滤后的输出:<br>

<font  color=#ff0000>
<%
response.write ND_say_what(request("aaas"))
%>
</font>

 

相关文章

最新评论