Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何允许零';他在外地吗?_Ios_Uitextfield - Fatal编程技术网

Ios 如何允许零';他在外地吗?

Ios 如何允许零';他在外地吗?,ios,uitextfield,Ios,Uitextfield,文本字段中只允许1到9个数字。UITextfield中的索引位置0不允许为零。但是我的代码在UITextfield中不允许为零。检查此代码。一次 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { NSString *text = mobileNo.text; if(textF

文本字段中只允许1到9个数字。
UITextfield
中的索引位置0不允许为零。但是我的代码在
UITextfield
中不允许为零。检查此代码。一次

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string  {
    NSString *text = mobileNo.text;

    if(textField==mobileNo) {
        NSCharacterSet *myCharSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
        for (int i = 0; i < [string length]; i++) {
            unichar c = [string characterAtIndex:i];
            if (![myCharSet characterIsMember:c]) {
                UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Alphbets and Special characters not allowed" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
                [alert show];
                return NO;
            }
        }
    }

    NSString *acceptedcharacters = @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-/";



    NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:acceptedcharacters] invertedSet];

    if ([string hasPrefix:@"0"]) {
        return NO;
    }

    const char * _char = [string cStringUsingEncoding:NSUTF8StringEncoding];
    int isBackSpace = strcmp(_char, "\b");
    if (isBackSpace == -8) {
        NSLog(@"deleted");
    } else {
        if (mobileNo.text.length == 1) {
            mobileNo.text = [NSString stringWithFormat:@"%@-",text];
            return YES;
        }
        if (mobileNo.text.length == 5) {
            mobileNo.text = [NSString stringWithFormat:@"%@-",text];
            return YES;
        }
        if (mobileNo.text.length == 9) {
            mobileNo.text = [NSString stringWithFormat:@"%@-",text];
            return YES;
        }
    }
//  if (textField == self.phoneNumber_txtField) {
        NSUInteger newLength = [mobileNo.text length] + [string length] - range.length;
        return (newLength > 14) ? NO : YES;
//  }

    NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];

    return [string isEqualToString:filtered];
}
-(BOOL)textField:(UITextField*)textField应更改字符范围:(NSRange)范围替换字符串:(NSString*)字符串{
NSString*text=mobileNo.text;
if(textField==mobileNo){
NSCharacterSet*myCharSet=[NSCharacterSet characterSetWithCharactersInString:@“0123456789”];
对于(int i=0;i<[字符串长度];i++){
unichar c=[string characterAtIndex:i];
如果(![myCharSet成员:c]){
UIAlertView*alert=[[UIAlertView alloc]initWithTitle:@“错误”消息:@“不允许使用Alphbets和特殊字符”委托:自取消按钮:@“确定”其他按钮:无,无];
[警报显示];
返回否;
}
}
}
NSString*acceptedcharacters=@“ABCDEFGHIJKLMNOPQRSTUVWXYZABDEFGHIJKLMNOPQRSTUVWXYZ0123456789-/”;
NSCharacterSet*cs=[[NSCharacterSet characterSetWithCharactersInString:acceptedcharacters]InversedSet];
if([string hasPrefix:@“0”]){
返回否;
}
const char*_char=[string cStringUsingEncoding:NSUTF8StringEncoding];
int isBackSpace=strcmp(_char,“\b”);
如果(isBackSpace==-8){
NSLog(@“已删除”);
}否则{
if(mobileNo.text.length==1){
mobileNo.text=[NSString stringWithFormat:@“%@-”,text];
返回YES;
}
if(mobileNo.text.length==5){
mobileNo.text=[NSString stringWithFormat:@“%@-”,text];
返回YES;
}
if(mobileNo.text.length==9){
mobileNo.text=[NSString stringWithFormat:@“%@-”,text];
返回YES;
}
}
//if(textField==self.phoneNumber\u txtField){
NSUInteger newLength=[mobileNo.text length]+[string length]-range.length;
返回(新长度>14)?否:是;
//  }
NSString*筛选=[[string componentsSeparatedByCharactersInSet:cs]componentsJoinedByString:@”“];
返回[字符串isEqualToString:已筛选];
}

您的代码在此处返回否:

if ([string hasPrefix:@"0"]) {
    return NO;
}
试试这个:

if ([string isEqualToString:@"0"] && range.location == 0) {
    return NO;
}

工作正常,谢谢。还有一个问题,假设我们进入1-203-45。它接受,在美国格式的手机号码。它不会接受,如何写代码。它显示警报消息。我的代码也允许此类型的号码,(1-222-33)如何限制该号码。请帮帮我。
if ([string isEqualToString:@"0"] && range.location == 0) {
    return NO;
}