美文网首页
textView禁止表情输入

textView禁止表情输入

作者: 神一样的队友 | 来源:发表于2019-12-19 15:04 被阅读0次

禁止表情输入,标点符号,中文,英文都能正常输入

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {

if([self isInputRuleAndNumber:text] || [tex tisEqualToString:@""]){

      return YES;

  }else{

      returnNO;

  }

}

//textField输入的监听方法:过滤表情等

- (void)textFieldDidChange:(UITextField*)textField{

    NSString*toBeString = textField.text;

    NSString*lastString;

    if(toBeString.length>0)

        lastString=[toBeString substringFromIndex:toBeString.length-1];

    if(![self isInputRuleAndNumber:toBeString]&&[self hasEmoji:lastString]) {

        textField.text= [self disable_emoji:toBeString];

        return;

    }

}

- (BOOL)hasEmoji:(NSString*)str{

    NSString *pattern = @"[^\\u0020-\\u007E\\u00A0-\\u00BE\\u2E80-\\uA4CF\\uF900-\\uFAFF\\uFE30-\\uFE4F\\uFF00-\\uFFEF\\u0080-\\u009F\\u2000-\\u201f\r\n]";

    NSPredicate*pred = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", pattern];

    BOOLisMatch = [predevaluateWithObject:str];

    returnisMatch;

}

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

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

    NSString *modifiedString = [regex stringByReplacingMatchesInString:text options:0 range:NSMakeRange(0, [text length]) withTemplate:@""];

    returnmodifiedString;

}

- (BOOL)isInputRuleAndNumber:(NSString *)str

{

    NSString *other = @"➋➌➍➎➏➐➑➒?,.。,、;:!~()+_-={}[]|?¥!@#$%^&*""<>:()/;“”‘’【】";

    unsignedlonglen=str.length;

    for(inti=0;i

    {

        unichara=[strcharacterAtIndex:i];

        if(!((isalpha(a))

             ||(isalnum(a))

             ||((a=='_') || (a =='-'))

             ||((a >=0x4e00&& a <=0x9fa6))

             ||([otherrangeOfString:str].location!=NSNotFound)

             ))

            returnNO;

    }

    return YES;

}

相关文章

网友评论

      本文标题:textView禁止表情输入

      本文链接:https://www.haomeiwen.com/subject/nkwmnctx.html