Iphone 使用特殊字符验证文本字段

Iphone 使用特殊字符验证文本字段,iphone,objective-c,cocoa-touch,ios4,Iphone,Objective C,Cocoa Touch,Ios4,在我的应用程序中。我想用特殊字符验证textfield 前。 如果用户按下?从键盘输入的信息比用户无法输入的信息多?在Textfield中 请任何人建议,我怎么做 检查 使用 看看这是否有效: -(NSString *) formatIdentificationNumber:(NSString *)string { NSCharacterSet * invalidNumberSet = [NSCharacterSet characterSetWithCharact

在我的应用程序中。我想用特殊字符验证textfield

前。 如果用户按下?从键盘输入的信息比用户无法输入的信息多?在Textfield中

请任何人建议,我怎么做

检查

使用

看看这是否有效:

    -(NSString *) formatIdentificationNumber:(NSString *)string
     {
       NSCharacterSet * invalidNumberSet = [NSCharacterSet characterSetWithCharactersInString:@"\n_!@#$%^&*()[]{}'\".,<>:;|\\/?+=\t~` "];

    NSString  * result  = @"";
    NSScanner * scanner = [NSScanner scannerWithString:string];
    NSString  * scannerResult;

    [scanner setCharactersToBeSkipped:nil];

     while (![scanner isAtEnd])
     {
    if([scanner scanUpToCharactersFromSet:invalidNumberSet intoString:&scannerResult])
    {
        result = [result stringByAppendingString:scannerResult];
    }
    else
    {
        if(![scanner isAtEnd])
        {
            [scanner setScanLocation:[scanner scanLocation]+1];
        }
    }
 }

  return result;
  }
-(NSString*)格式标识号:(NSString*)字符串
{
NSCharacterSet*invalidNumberSet=[NSCharacterSet characterSetWithCharactersInString:@“\n\u!@$%^&*()[]{}\\”,:;\ 124;\\/?+=\ t~`];
NSString*结果=@;
NSScanner*scanner=[NSScanner scannerWithString:string];
NSString*扫描结果;
[扫描仪设置字符stobeskiped:nil];
而(![scanner isattend])
{
if([scanner scanupCharacters fromset:invalidNumberSet intoString:&scannerResult])
{
结果=[result stringByAppendingString:scannerResult];
}
其他的
{
如果(![scanner isattend])
{
[扫描仪设置扫描位置:[扫描仪扫描位置]+1];
}
}
}
返回结果;
}

试试下面的方法,它会对您有所帮助。它只接受信件

   - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
    {
        //For avoiding user to enter non digital number..
        if([[string stringByTrimmingCharactersInSet:[[NSCharacterSet letterCharacterSet] invertedSet]] isEqualToString:@""])
        {
            return NO;
        }
        else
        {
            return YES;
        }
    }
   - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
    {
        //For avoiding user to enter non digital number..
        if([[string stringByTrimmingCharactersInSet:[[NSCharacterSet letterCharacterSet] invertedSet]] isEqualToString:@""])
        {
            return NO;
        }
        else
        {
            return YES;
        }
    }