Comments 9
Почитайте RFC 3696 и ужаснитесь следующим валидным е-мейлам:
- "Abc\@def"@example.com
- "Fred Bloggs"@example.com
- "Joe\Blow"@example.com
- "Abc@def"@example.com
- customer/department=shipping@example.com
- \$A12345@example.com
- !def!xyz%abc@example.com
- _somename@example.com
- " "@example.com
- Miles.O'Brian@example.com
- !#$%&'*+-/=?^_`{}|~@example.com
Алсо, не смог потестить Ваш монструозный регексп на regex101, не подскажете где тестировали?
0
Спасибо за отзыв!
Тестировал в сервисе http://www.regexpal.com/
P.S.
Немного поменял выражение, там были подводные камни при перечисление этих символов! # $ % & ' * + — / =? ^ _ `. { | } ~
Перед знаком минус должен стоять backslash.
Вот исправленное
([\w~}|{.`^?\-=+/*'&%$#!]){1,64}\@([\w~}|{.`^?\-=+/*'&%$#!]){1,64}\.([a-z0-9]){2,64}
+ Выражение могло не запуститься в онлайн редакторе, потому что в нем точка была экранирована два раза \\.
(первый раз для РВ, второй для NSString)
Тестировал в сервисе http://www.regexpal.com/
P.S.
Немного поменял выражение, там были подводные камни при перечисление этих символов! # $ % & ' * + — / =? ^ _ `. { | } ~
Перед знаком минус должен стоять backslash.
Вот исправленное
([\w~}|{.`^?\-=+/*'&%$#!]){1,64}\@([\w~}|{.`^?\-=+/*'&%$#!]){1,64}\.([a-z0-9]){2,64}
+ Выражение могло не запуститься в онлайн редакторе, потому что в нем точка была экранирована два раза \\.
(первый раз для РВ, второй для NSString)
0
Нет кавычек, а они в качестве адреса валидны. Для полноценной работы нужна поддержка русских доменов.рф,.дети, etc. Ещё домен может ВНЕЗАПНО быть в punycode — mail@xn--d1acufc.xn--p1ai (что вашим регекспом не покрывается).
Алсо, ещё несколько валидных адресов:
- jsmith@[192.168.2.1]
- "very.(),:;<>[]\".VERY.\"very@\ \"very\".unusual"@strange.example.com
- user@[IPv6:2001:DB8::1]
- user@tt
- user@localhost
- "()<>[]:,;@\\"!#$%&'-/=?^_`{}| ~.a"@example.org
И парочка неправильных, которые Ваш регексп кушает на отлично:
- john..doe@example.com
- john.doe@example..com
0
Как тьюториал все понятно и интересно описано, но вот тему для валидации не ту выбрали.
Какое-то… маленькое оно. А где проверка на кавычки?
И, да, в кавычках можно использовать еще специальные символы.
И их может быть несколько (кавычек)
PS Ну и вообще RFC822 следовать надо )
Только что мы составили полноценное регулярное выражение.
Какое-то… маленькое оно. А где проверка на кавычки?
"foo"@bar.com
И, да, в кавычках можно использовать еще специальные символы.
abc"@"def@foobar.com
И их может быть несколько (кавычек)
PS Ну и вообще RFC822 следовать надо )
0
А как же русские буквы, ведь существуют домены.рф,.бел и другие
0
Sign up to leave a comment.
NSRegularExpression и NSDataDetector — Быстрый старт