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];

    }

  • 相关阅读:
    "《算法导论》之‘图’":不带权二分图最大匹配(匈牙利算法)
    "C#":MySql批量数量导入
    MySql常用操作语句(2:数据库、表管理以及数据操作)
    MySql常用操作语句(1:启动、连接数据库及用户操作)
    HTML 段落
    HTML 标题
    HTML 属性
    HTML 元素
    HTML 基础
    HTML 编辑器
  • 原文地址:https://www.cnblogs.com/Mr-------Li/p/5640336.html
Copyright © 2011-2022 走看看