如何在iphone中查找字母、特殊字符?

如何在iphone中查找字母、特殊字符?,iphone,numbers,uitextfield,character,Iphone,Numbers,Uitextfield,Character,我在检查NSString中的字符(a-z,a-z)和特殊字符(除(.)外)时遇到问题。我有一个用于价格的UITextField,我需要用“.”[Ex:Price:-20.00]传递仅用于价格的数字的值。我需要检查NSString中是否有字母、特殊字符,如果字符、特殊字符在NSString(UITextField text)中,我需要提醒用户为字段“Price”输入有效数字。请帮忙解决这个问题。任何建议/想法都很好。提前感谢。您可以使用查找字符串中的字符: NSCharacterSet *nonD

我在检查NSString中的字符(a-z,a-z)和特殊字符(除(.)外)时遇到问题。我有一个用于价格的UITextField,我需要用“.”[Ex:Price:-20.00]传递仅用于价格的数字的值。我需要检查NSString中是否有字母、特殊字符,如果字符、特殊字符在NSString(UITextField text)中,我需要提醒用户为字段“Price”输入有效数字。请帮忙解决这个问题。任何建议/想法都很好。提前感谢。

您可以使用查找字符串中的字符:

NSCharacterSet *nonDigits = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];
BOOL containsNonDigitChars = [myString rangeOfCharacterFromSet:nonDigits].location == NSNotFound
你可以这样做

- (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSCharacterSet *nonNumberSet = [[NSCharacterSet characterSetWithCharactersInString:@"0123456789."] invertedSet];
//here u can alert the user by checking length
return ([string stringByTrimmingCharactersInSet:nonNumberSet].length > 0);


}
这里有一个方法:

if ([myString isMatchedByRegex:@"^(?:|0|[1-9]\\d*)(?:\\.\\d*)?$"]) {
    // String is OK
}

您可以尝试将NSScanner类与其scanFloat方法一起使用

NSScanner *scanner = [NSScanner scannerWithString: theString];
float scannedValue = 0.0f;

BOOL foundFloat = [scanner scanFloat:&scannedValue];
if (foundFloat && [scanner isAtEnd])
{
  // scan was successful
}
else
{
 // illegal characters were found
}