在文本中只允许2个空格

时间:2013-12-19 21:19:12

标签: ios objective-c nsregularexpression

我有一个UITextField,我希望允许用户在此字段中输入最多2个空格。我怎么能这样做?

我想我需要在这里检查一下:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {}

但要检查什么?我在网上搜索过,但一无所获。

2 个答案:

答案 0 :(得分:2)

您想为此使用正则表达式。表达式\s\s+表示两个或多个空格,回车符或制表符。

NSString *text = textField.text;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:
                              @"(\s\s+)" options:0 error:nil];

[regex replaceMatchesInString:str options:0 range:NSMakeRange(0, [str length]) withTemplate:@"  "];    
textField.text = text;

答案 1 :(得分:1)

这将返回字符串

中有多少个空格
 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    int numberOfSpaces = [[textField.text componentsSeparatedByString:@" "] count];

    if (numberOfSpace > 2) {

        //notify user that he/she has too many spaces

    }
}

你似乎也是iOS新手。不要忘记将视图控制器设置为UITextField委托。