2012-06-11 2 views
0

Я делаю шаблон, чтобы проверить, что пользователь может ввести только номер и строку. Пожалуйста, кто-нибудь может мне помочь или дать некоторую ссылку. Следующий мой код. Thnks заранее.Регулярное выражение, допускающее только строку и число

NSString *regEx = 
    @"(?:[a-z0-9!#$%\\&'*+/=?\\^_`{|}~-]+(?:\\.[a-z0-9!#$%\\&'*+/=?\\^_`{|}" 
    @"~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\" 
    @"x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-" 
    @"z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5" 
    @"]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-" 
    @"9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21" 
    @"-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])"; 

NSString *[email protected]"vinod123"; 
NSPredicate *matchPattern =[NSPredicate predicateWithFormat:@"SELF MATCHES %@",regEx]; 
BOOL resultMatch =[matchPattern evaluateWithObject:strRoadworthyGet]; 

if(!resultMatch) 
    NSLog(@"invalid pattern"); 
+0

Может быть, вы могли бы форматировать код лучше. Кроме того, было бы хорошо сначала узнать, какова логика, которую вы поставили за regEx. Это кажется громоздко длинным для выражения, которое вам нужно – krammer

+1

Это регулярное выражение будет соответствовать только одному или нескольким буквам и цифрам: '^ [A-Za-z0-9] + $' –

ответ

3

Вы можете использовать alphanumeric метод NSCharacterSet, чтобы вернуться проверить Letters, Marks и Numbers.

Если вы хотите пойти на RegularExpression, вы можете использовать

NSString *regEx = @"^[a-zA-Z0-9]*$"; 
Смежные вопросы