Как найти буквы, специальные символы в NSString iphone? - PullRequest
2 голосов
/ 29 ноября 2011

У меня проблемы с проверкой символов (a-z, A-Z) и специальных символов, кроме (.) В NSString. У меня есть UITextField для цены, мне нужно передать значение для номеров только цены с помощью «.» [Пример: цена: - 20,00]. Мне нужно проверить, есть ли какие-либо буквы, специальные символы в NSString. Если символы, специальные символы находятся в NSString (текст UITextField), мне нужно предупредить пользователя о вводе действительных чисел для поля «Цена». Пожалуйста, помогите решить эту проблему. Любое предложение / идея была бы отличной. Заранее спасибо.

Ответы [ 4 ]

2 голосов
/ 29 ноября 2011

Вы можете использовать NSCharacterSet для поиска символов в строках:

NSCharacterSet *nonDigits = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];
BOOL containsNonDigitChars = [myString rangeOfCharacterFromSet:nonDigits].location == NSNotFound
1 голос
/ 29 ноября 2011

Вы можете попробовать использовать класс 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
}
1 голос
/ 29 ноября 2011

Вот один из способов:

if ([myString isMatchedByRegex:@"^(?:|0|[1-9]\\d*)(?:\\.\\d*)?$"]) {
    // String is OK
}
1 голос
/ 29 ноября 2011

Вы можете сделать это,

- (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);


}
...