zoukankan      html  css  js  c++  java
  • 输入框限制输入表情

      前些日子写项目,测试提出要求要禁止表情的录入,在UITextField这个代理方法中shouldChangeCharactersInRange,只能够限制键盘上的表情不能录入,但是录入时联想上的表情还是能够录入,所以最终用了下边的方法,但是可能还会有问题。

      究其原因,测试说防止数据库的表被注入什么的,但是我感觉这些活是后台要做的,后台直接拿传入的字符串直接作为数据库的查询条件,肯定会有问题的,但是惹不起测试 ,只能够做了限制了!如果有更好的办法,欢迎指正。

    - (void)viewDidLoad {

        [super viewDidLoad];

        

        [[NSNotificationCenter defaultCenter]addObserver:self

                                                selector:@selector(textDidChange:)

                                                    name:UITextFieldTextDidChangeNotification

                                                  object:nil];

    }

    - (void)textDidChange:(NSNotification*)nf{

        UITextField *tf = (UITextField*)nf.object;

        NSString *string  = [self filterEmoji:tf.text];

        if (string) {

            tf.text = string;

        }

    }

    - (NSString*)filterEmoji:(NSString*)text{

        

        NSError *error = nil;

        NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[^\u0020-\u007E\u00A0-\u00BE\u2E80-\uA4CF\uF900-\uFAFF\uFE30-\uFE4F\uFF00-\uFFEF\u0080-\u009F\u2000-\u201f ]" options:NSRegularExpressionUseUnixLineSeparators error:&error];

        NSString *modifiedString = [regex stringByReplacingMatchesInString:text

                                                                   options:0

                                                                     range:NSMakeRange(0, [text length])

                                                              withTemplate:@""];

        

        if (![modifiedString isEqualToString:text]) {        

            return modifiedString;        

        }else{        

            return nil;

        }

    }

    //在此要干掉通知

    -(void)dealloc{  

        [[NSNotificationCenter defaultCenter] removeObserver:self];

    }

  • 相关阅读:
    MS SQL Server迁移至Azure SQL
    Aras Innovator 11 sp2 firefox客户端设置
    Aras Innovator 11 sp2 IE客户端设置
    Aras Innovator 11 sp2安装
    JDK Windows安装
    mocha测试es6问题
    jQuery中animate与scrollTop、offset().top实例
    AI下载步骤
    Visual Studio Code必备插件
    Visual Studio code快捷键
  • 原文地址:https://www.cnblogs.com/Mr-------Li/p/5640336.html
Copyright © 2011-2022 走看看