spe*_*tak 7 iphone objective-c ios
我需要一种方法来确保电话号码有10位数而没有其他字符即() - 并确保电子邮件地址是有效的电子邮件(格式正确).
是否有任何库不能让我这么容易,所以我不必编写正则表达式.
cho*_*own 17
这将检查UITextField以获取10位数或更少的正确电子邮件和电话号码.
将此方法添加到textFields 委托,然后检查是否应添加要更改的字符.
返回YES或NO取决于文本字段,当前包含的字符数以及要添加的字符数:
#define ALPHA @"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
#define NUMERIC @"1234567890"
#define ALPHA_NUMERIC ALPHA NUMERIC
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSCharacterSet *unacceptedInput = nil;
switch (textField.tag) {
// Assuming EMAIL_TextField.tag == 1001
case 1001:
if ([[textField.text componentsSeparatedByString:@"@"] count] > 1)
unacceptedInput = [[NSCharacterSet characterSetWithCharactersInString:[ALPHA_NUMERIC stringByAppendingString:@".-"]] invertedSet];
else
unacceptedInput = [[NSCharacterSet characterSetWithCharactersInString:[ALPHA_NUMERIC stringByAppendingString:@".!#$%&'*+-/=?^_`{|}~@"]] invertedSet];
break;
// Assuming PHONE_textField.tag == 1002
case 1002:
if (textField.text.length + string.length > 10) {
return NO;
}
unacceptedInput = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];
break;
default:
unacceptedInput = [[NSCharacterSet illegalCharacterSet] invertedSet];
break;
}
return ([[string componentsSeparatedByCharactersInSet:unacceptedInput] count] <= 1);
}
Run Code Online (Sandbox Code Playgroud)
另外,请查看以下两篇文章:
在iPhone
PhoneNumberFormatter 上自动格式化电话号码UITextField.
| 归档时间: |
|
| 查看次数: |
13750 次 |
| 最近记录: |