我到处寻找,找不到适用于此的解决方案。
我有:
- (BOOL) textFieldShouldEndEditing:(UITextField *)textField {
NSString *regEx = @"/^[1-9]\d*(\.\d+)?$/";
NSRange r = [textField.text rangeOfString:regEx options:NSRegularExpressionSearch];
if (r.location == NSNotFound) {
UIAlertView *av = [[UIAlertView alloc] initWithTitle:@"Entry Error"
message:@"Enter only numbers or decimals"
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[av show];
return NO;
} else {
return YES;
}
}
但正则表达式不起作用。我希望它只接受数字和小数。我知道在使用正则表达式的代码中有一些奇怪的区别,你必须加倍反斜杠或其他东西,但我无法理解。
答案 0 :(得分:2)
删除开头的[1-9]以及正斜杠,然后将反斜杠转义为:
"^\\d*(\\.\\d+)?$"