Ios 如何允许零';他在外地吗?
文本字段中只允许1到9个数字。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
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;
}