Проверка по регулярному выражению, по шаблону "^[0-9]+$"
, с использованием следующего метода -validateString:withPattern:
.
[self validateString:"12345" withPattern:"^[0-9]+$"];
- Если считается "123.123"
- С рисунком
"^[0-9]+(.{1}[0-9]+)?$"
- Если в точности 4 цифры, без
"."
.
- Если цифры цифры без
"."
, а длина составляет от 2 до 5.
- С рисунком
"^[0-9]{2,5}$"
.
Регулярное выражение можно проверить на онлайн-сайте .
Вспомогательная функция выглядит следующим образом.
// Validate the input string with the given pattern and
// return the result as a boolean
- (BOOL)validateString:(NSString *)string withPattern:(NSString *)pattern
{
NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:&error];
NSAssert(regex, @"Unable to create regular expression");
NSRange textRange = NSMakeRange(0, string.length);
NSRange matchRange = [regex rangeOfFirstMatchInString:string options:NSMatchingReportProgress range:textRange];
BOOL didValidate = NO;
// Did we find a matching range
if (matchRange.location != NSNotFound)
didValidate = YES;
return didValidate;
}
Swift 3 версия:
Тест на детской площадке.
import UIKit
import Foundation
func validate(_ str: String, pattern: String) -> Bool {
if let range = str.range(of: pattern, options: .regularExpression) {
let result = str.substring(with: range)
print(result)
return true
}
return false
}
let a = validate("123", pattern: "^[0-9]+")
print(a)