如何验证UITextView,以便它不允许像'&'这样的特殊字符?

时间:2012-08-25 05:46:01

标签: iphone objective-c

我有一些UITextViews。用户将输入数据,并使用Web服务将数据提交到数据库。数据库显示错误,例如'&'等特殊字符。所以我想在他/她尝试使用这个特殊字符提交数据时阻止用户,或者应该提交有关提交数据的消息'我的意思是如何验证该textview?如果有人知道,请帮助我。 Thanx很多。

1 个答案:

答案 0 :(得分:5)

第一种方式,提到所有接受的字符,如下面的示例代码,如果发现超出范围的字符,则显示消息。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{
    NSCharacterSet * set = [[NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLKMNOPQRSTUVWXYZ0123456789"] invertedSet];
    if ([textField.text rangeOfCharacterFromSet:set].location != NSNotFound) 
    {
        NSLog(@"This string contains illegal characters");
        return FALSE;
    }
    return TRUE;
}

或者,使用正则表达式并以另一种方式做同样的事情......

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{
    if ([textField.text isMatchedByRegex:@"[^a-zA-Z0-9]"]) 
    {
        NSLog(@"This string contains illegal characters");
        return FALSE;
    }
    return TRUE;
}