ios OC 输入框禁止输入空格 去掉空格 只能输入字母和数字

1 输入框禁止输入空格
  • 遵循UITextField的代理方法
  • 实现代理方法
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSString *tem = [[string componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]componentsJoinedByString:@""];
    if (![string isEqualToString:tem]) {
        return NO;
    }
    return YES;
}
复制代码

2 去掉字符串中的空格
  • 去掉字符串中的空格
 [x stringByReplacingOccurrencesOfString:@" " withString:@""];
复制代码

3 限制输入框只能输入字母和数字
  • 输入框只能输入字母和数字
//定义数字和字母的宏
#define ALPHANUM @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
复制代码
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
      //只能输入数字和字母
      NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:ALPHANUM] invertedSet];
      NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];

      if (![string isEqualToString:filtered])
       {
           return NO;
       }

      return YES;
}

复制代码

转载于:https://juejin.im/post/5a39dcd9518825698e7233fb

iOS的Objective-C (OC) 中,如果你想要限制用户在UITextField或UITextView等文本输入控件中输入中文,可以通过设置键盘类型、正则表达式验证或者自定义输入代理来实现。以下是几种方法: 1. 键盘类型设置: - 如果你只需要支持英文输入,可以使用`UIKeyboardTypeASCIICapable`类型的键盘,它默认不会显示包含中文的键盘。 ```objective-c [inputTextField setKeyboardType:UIKeyboardTypeASCIICapable]; ``` 2. 正则表达式验证: 在文本框的`shouldChangeCharactersInRange:replacementString:`代理方法中,检查输入的字符串是否只包含你想要的字符(如英文字符)。 ```objective-c - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string]; // 使用正则表达式判断是否为英文或者其他允许的字符 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", @"^[a-zA-Z0-9]+$"]; return [predicate evaluateWithObject:newString]; } ``` 3. 自定义输入代理: 实现`UITextFieldDelegate`协议,然后在`textField:shouldInsertText:`方法中过滤中文字符。 ```objective-c - (BOOL)textField:(UITextField *)textField shouldInsertText:(NSString *)text { if ([text rangeOfCharacterFromSet:[NSCharacterSet characterSetWithCharactersInString:@"\u4e00-\u9fa5"]] != NSNotFound) { // 如果包含中文字符,返回NO阻止输入 return NO; } return YES; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值