关闭

字符/单词提取与过滤

618人阅读 评论(0) 收藏 举报

http://community.csdn.net/Expert/topic/5760/5760639.xml?temp=.3635828

解此题得总结出的一段代码。备用 

 

<!--
模拟1W条记录,速度过得去。
本法按允许集中查找待处理单词,如果允许集中存在那么就取出.最终得到一串待处理字串中含有的所有允许单词.
若还有看不明白的地方,请指出来,我再加注.总不能搞得每行加注吧?!我可没写过教程,难度很大的.
-->
<%
Dim     rtype,strA
rtype    =lcase(trim(request("rtype")))    ''字符串类别
strA    =trim(request("strA"))  ''要处理的字串.
''调试代码
rtype    ="word" ''字符串以限制为word
rtype    ="number" ''字符串以限制为数值
rtype    =""  ''字符串以限制为字母
strA    ="abcdef 123 abcd 1234567 d abcdef 1234567 a asdf abcdef 1234 ab"
''============调试结束,以上代码非调试时请删除.
''不同类型分别处理
select case rtype
case "word": ''字符串以限制为word
    response.Write(checkWords(strA))
case "number": ''字符串以限制为数值
    response.Write(checkNumbers(strA))
case else:  ''字符串以限制为字母,默认类别
    response.Write(checkAz(strA))
end select
''字母处理函数
Function checkAz(vNewStr)
    Dim     tmp_str,tmp_arr,tmp_strB,tmp_arr_up,tmp_i
 ''待处理字串生成数组
    tmp_str    =vNewStr
    tmp_arr    =split(tmp_str," ")
    tmp_arr_up    =ubound(tmp_arr)
   
    ''模拟取出允许集
    tmp_strB=" a b c d "
   
 ''待处理字串中的单词在允许集中存在则提取出来.
    checkAz=""
    for tmp_i=0 to tmp_arr_up
        if instr(tmp_strB," "&tmp_arr(tmp_i)&" ")>0 then
            checkAz=checkAz&" "&tmp_arr(tmp_i)
        end if
    next
 ''返回值
    checkAz    =ltrim(checkAz)
End Function
''数字处理函数
Function checkNumbers(vNewStr)
    Dim     tmp_str,tmp_arr,tmp_strB,tmp_arr_up,tmp_i
 ''待处理字串生成数组
    tmp_str    =vNewStr
    tmp_arr    =split(tmp_str," ")
    tmp_arr_up    =ubound(tmp_arr)
   
    ''模拟取出允许集
    tmp_strB=" "
    for tmp_i=1 to 10000
        tmp_strB=tmp_strB&"1234567 "
    next
   
 ''待处理字串中的单词在允许集中存在则提取出来.
    checkNumbers=""
    for tmp_i=0 to tmp_arr_up
        if instr(tmp_strB," "&tmp_arr(tmp_i)&" ")>0 then
            checkNumbers=checkNumbers&" "&tmp_arr(tmp_i)
        end if
    next
 ''返回值
    checkNumbers    =ltrim(checkNumbers)
End Function
''单词处理函数
Function checkWords(vNewStr)
    Dim     tmp_str,tmp_arr,tmp_strB,tmp_arr_up,tmp_i
 ''待处理字串生成数组
    tmp_str    =vNewStr
    tmp_arr    =split(tmp_str," ")
    tmp_arr_up    =ubound(tmp_arr)
   
    ''模拟取出允许集
    tmp_strB=" "
    for tmp_i=1 to 10000
        tmp_strB=tmp_strB&"abcdef "
    next
   
 ''待处理字串中的单词在允许集中存在则提取出来.
    checkWords=""
    for tmp_i=0 to tmp_arr_up
        if instr(tmp_strB," "&tmp_arr(tmp_i)&" ")>0 then
            checkWords=checkWords&" "&tmp_arr(tmp_i)
        end if
    next
 ''返回值
    checkWords    =ltrim(checkWords)
End Function
%>

以上是提取,过滤更简单,请参考动网等论坛禁用语相关代码。

代码整理收集中...

 

 

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:161131次
    • 积分:2036
    • 等级:
    • 排名:第19531名
    • 原创:46篇
    • 转载:37篇
    • 译文:0篇
    • 评论:19条
    最新评论