我现在想实现一个过滤器一样的功能(但不要过滤掉,只要检查出有没不法的关键字就可以了),一个textbox文本框,输入一段文本。
还有一个表叫keyword里面存放着不法的关键字,字段名是keylist
现在的问题是我想怎么样才能检查出这段文本有没不法的关键字?
请高手给个思路有参考就更好!~
谢谢

解决方案 »

  1.   

    对每一个关键字调用indexof()不就行了吗?
      

  2.   

    如果每个关键字都是一条记录,你可以参考一XIA:create table dbo.keyword
    (
    keylist varchar(20)
    )
    go
    insert into keyword values ('1234')declare @input varchar(20)
    set @input = '123577'
    if exists (select 'x' from keyword where @input like '%'+keylist+'%')
    begin
       select 1 as rst
    end else begin
       select 0 as rst
    end
      

  3.   

    public string rebadword(string chr)
    {
    string[] array=badword.Split(new char[]{'|'});
    for(int i = 0;i <= array.Length - 1;i ++)
    {
    chr = chr.Replace(array.GetValue(i).ToString(),"**");
    }
    return(chr);
    }
    可以写在全局变量里面,这里非法字是用“|”隔开的
      

  4.   

    你的这个应用在程序层面做就可以了,不用到Sql里面去做
    先把你的keywords都取到一个ArrayList keys里面
    bool CheckKey(stirng source)
    {
        foreach(string key in keys)
        {
            if(source.indexof(key)!=-1)
            {
                return false;
            }
        }
        return true;
    }