iOS UITextField如何禁止輸入表情及特殊字符


---恢復內容開始---

//禁止輸入表情

- (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:@"&&&&****"];

    return modifiedString;

}

//使用方式

 

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

    if ([[self disable_emoji:string] isEqualToString:@"&&&&****"] || [[self disable_emoji:string] isEqualToString:@"&&&&****&&&&****"]) {

        [textField becomeFirstResponder];

        [FZPPregressHUD showNormalWithStatus:@"禁止輸入特殊字符"];

        return NO;

    }

}

//禁止輸入特殊字符

//首先需要先將特殊字符存放在數組內

       self.specialStringArray = [@[] mutableCopy];

       //字符串

        self.specialStringStr = @"~,¥,#,&,*,<,>,《,》,(,),[,],{,},【,】,^,@,/,£,¤,,|,§,¨,「,」,『,』,¢,¬, ̄,(,),——,+,|,$,_,€,¥,?,/,|,,,。,!,!";

        self.specialStringArray = [self.specialStringStr componentsSeparatedByString:@","];

 

//然后還是在代理方法中實現

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

           循環遍歷字符串

      for (NSInteger i = 0; i < self.specialStringArray.count; i++) {

        //判斷字符串中是否含有特殊符號

        if ([intriduction rangeOfString:self.specialStringArray[i]].location != NSNotFound) {

            [textField becomeFirstResponder];

            [FZPPregressHUD showNormalWithStatus:@"禁止輸入特殊字符"];

            textField.text = [textField.text substringToIndex:textField.text.length - 1];

            return NO;

        }

//逗號需要特殊處理一下

        if ([intriduction rangeOfString:@","].location != NSNotFound) {

            [textField becomeFirstResponder];

            [FZPPregressHUD showNormalWithStatus:@"禁止輸入特殊字符"];

            textField.text = [textField.text substringToIndex:textField.text.length - 1];

            return NO;

        }

   }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM