我正在使用解析来存储我的数据。我在视图控制器中有一堆UITextField用于用户注册。
现在,在我的手机文本字段中,如何根据总长度格式化文本字段以显示以下内容。+55(21)99999-9999=13个数字+55(21)9999-9999=12个数字
我想同时接受12和13个号码,并在文本字段中显示格式化的电话。
现在,为了保存它进行解析,我想用字符+、(,)、-保存格式化的数字。
我还想将日期文本字段的格式设置为dd/mm/yyyy。有人能帮我吗?
谢谢。
更新好的,所以我做了以下操作:
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
if (_telefoneTextField.text.length == 0)
_telefoneTextField.text = [NSString stringWithFormat:@"(%@",_telefoneTextField.text];
if (_telefoneTextField.text.length == 3)
_telefoneTextField.text = [NSString stringWithFormat:@"%@) ",_telefoneTextField.text];
if (_telefoneTextField.text.length == 9)
_telefoneTextField.text = [NSString stringWithFormat:@"%@-",_telefoneTextField.text];
return YES;
}
和
else if (textField == self.telefoneTextField)
{
if (_telefoneTextField.text.length == 14)
{
NSLog(@"Telefone sem o 9");
[self.nascimentoTextField becomeFirstResponder];
}
if (_telefoneTextField.text.length == 15)
{
NSLog(@"Telefone COM o 9");
NSMutableString *telefone = [[NSMutableString alloc] initWithString:_telefoneTextField.text];
[telefone deleteCharactersInRange:NSMakeRange(9,1)];
[telefone insertString:@"-" atIndex:10];
NSLog(@"%@", telefone);
_telefoneTextField.text = telefone;
[self.nascimentoTextField becomeFirstResponder];
}
else
{
NSLog(@"Telefone NAO esta no formato");
}
}
现在,它就像我想要的那样工作。当用户输入时,它会实时更改格式,当编辑完成时,它检查有多少个字符,如果是15个字符,它会再次更改格式。
现在,有一件事我做不到:我怎么能用键盘删除电话号码,我的意思是,它不会删除"-"字符之前的号码。
谢谢。
使用正则表达式实现这一点的最佳方法。请参阅以下讨论Regex在iOS 上无法正常工作