HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 如何限制UITextField中的特殊字符,除了点和下划线?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如何限制除点和下划线之外的UITextField中的特殊字符?

我已经尝试了下面的代码片段,但没有运气:

#define ACCEPTABLE_CHARECTERS @" ABCDEFGHIJKLMNOPQRstuVWXYZabcdefghijklmnopqrstuvwxyz0123456789_."

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRangE)range replacementString:(NSString *)String
{
         NSCharacterSet *acceptedInput = [NSCharacterSet characterSetWithCharacters@R_@R_696_11289@_8566@ing:ACCEPTABLE_CHARECTERS];
        if (![[String componentsSeparatedByCharactersInSet:acceptedInput] count] > 1){
            NSLog(@"not allowed");
            return NO;
        }
        else{
            return YES;
        }
}

解决方法

尝试下面给出的代码块,它对我来说很好.

SWIFT 3.0

let ACCEPTABLE_CHARACTERS = "ABCDEFGHIJKLMNOPQRstuVWXYZabcdefghijklmnopqrstuvwxyz0123456789_"

func textField(_ textField: UITextField,shouldChangeCharactersIn range: NSRange,replacementString String: String) -> Bool {
    let cs = NSCharacterSet(charactersIn: ACCEPTABLE_CHARACTERS).inverted
    let filtered = String.components(separatedBy: cs).joined(separator: "")

    return (String == filtered)
}

目标C.

#define ACCEPTABLE_CHARACTERS @" ABCDEFGHIJKLMNOPQRstuVWXYZabcdefghijklmnopqrstuvwxyz0123456789_."

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRangE)range replacementString:(NSString *)String  {
      NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharacters@R_@R_696_11289@_8566@ing:ACCEPTABLE_CHARACTERS] invertedSet];

      NSString *filtered = [[String componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];

      return [String isEqualToString:filtered];
}

希望它也适合你.

大佬总结

以上是大佬教程为你收集整理的ios – 如何限制UITextField中的特殊字符,除了点和下划线?全部内容,希望文章能够帮你解决ios – 如何限制UITextField中的特殊字符,除了点和下划线?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。