1.玩家注册时,不允许出现下面的关键字,或者存在关键字的通配符组合,如:黄金节旅游
因为存在: %金%游% 所以也被屏蔽2.该屏蔽字要求存放在数据库用户中心库中,便于手工添加和调整3.使用中文字符或者英文字符、数字、下划线等,但不能含有空格和#&:-!~%$*?等字符,
长度:4至16个字符,中文字一个算两个字符4.过虑的关键字如下:

















管員
系統
網游
新區



解决方案 »

  1.   

    1,2个问题:ArrayList arr = new ArrayList();
    //这里可以从数据库中添加
    arr.Add("黄");
    arr.Add("金");
    //获得用户名
    string username = input_username;for (int i = 0; i < arr.Count; i++)
            {
                if (username.IndexOf(arr[i].ToString()) > -1)
                {
                    //处理方法         
                }
            }
      

  2.   

    1,先用select 语句选择出来一条SQL拼句,拼成
    declare @c as nvarchar(max)
    select @c = c@ + ' and charindex(用户名字段名,' + word + ')>1' from disabledWrod 
    select @c = ' where 1=1 ' + @c;
    exec 'select * from account ' + @c;
    只是这样的想法,具体的SQL是否可以运行还得调试一下。
    2,数字的长度建议你在程序中做判断。
      

  3.   

     Regex reg = new Regex("^([\u4e00-\u9fa5]|(?!admin$)(?!戲$)(?!自己加过虑的字符$)[a-zA-Z0-9]){4,16}$");
      

  4.   

    忘了说了,
    过虑的关键字是放在数据库中
    表结构如下:
    id  int  自增长
    kwyword  varchar 50 
    1.玩家注册时,不允许出现下面的关键字,或者存在关键字的通配符组合,如:黄金节旅游 
    因为存在: %金%游% 所以也被屏蔽
    或者
    张开世界亚亚洲洲,因为存在%张%亚%洲%,所以也屏蔽
    还有可能有要过虑四个或五个字的关键字
      

  5.   

    如果是C#就用.net的正则表达式就可以,把表达式存到数据库里,到时候取出来匹配