检查 UITextfield 只有字母没有数值

Check UITextfield have only Alphabet not numeric value

我正在创建一个表格,如果有人输入数字然后显示警报,我想在名称字段中签入。

代码如下:

NSString *str = abc.text; 
NSCharacterSet *alphaSet = [NSCharacterSet alphanumericCharacterSet]; 
BOOL valid = [[str stringByTrimmingCharactersInSet:alphaSet] isEqualToString:@""]; 
if (!(valid)) 
{ 
    NSLog(@"number present"); 
} 
else 
{   
    NSLog(@"number not present"); 
}

谢谢

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    // you should check if the textfield == your Name Field
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^\d{0,9}$" options:0 error:nil];
    NSTextCheckingResult *numMatch = [regex firstMatchInString:string options:0 range:NSMakeRange(0, [string length])];

    if (numMatch) {
        // alert here
        NSLog(@"number present");
        return NO;
    } else {
        NSLog(@"number not present");
    }

    return YES;
}

您可以直接处理用户每次按键时的键盘事件

     -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
        {  
        NSCharacterSet *alphaSet = [NSCharacterSet decimalDigitCharacterSet];
            BOOL isNumber= [[string stringByTrimmingCharactersInSet:alphaSet] isEqualToString:@""];
if(!([textfield.text isEqualToString:@""] || textfield.text== nil )) //empty check
{
           if (isNumber) {
                // alert here
                NSLog(@"Number not alowed");
                return NO;
            } 
}

        }
- (BOOL) textFieldShouldEndEditing:(UITextField *)textField {
if (textField == self.txt_Name) {

    if(txt_Name.text.length>0)
    {
        NSCharacterSet *s = [NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"];
        s = [s invertedSet];
        NSString *str1 = txt_Name.text;
        NSRange r = [str1 rangeOfCharacterFromSet:s];
        if (r.location != NSNotFound) {
            NSLog(@"the string contains illegal characters");
            txt_nameOFInfo.hidden =false;
            [img_name setImage:[UIImage imageNamed:@"redot.png"]];

        }
        else
        {
            txt_nameOFInfo.hidden =true;
            [img_name setImage:[UIImage imageNamed:@"gray-dot.png"]];

        }
      //  NSLog(@"value %@",txt_lastName.text);
    }

}

}

使用此代码并将委托添加到您的 UItextfield 我希望它对您有用