сотрудник: тебе не приходилось на плюсах делать проверку на типа валидный email bitfield: в инете есть страшные регекспы сотрудник: я их боюсь думал может что готовое есть bitfield: я б не парился, проверял на x@y.z where x,y,z in [a-zA-Z0-9.+-] сотрудник: так и сделаю bitfield: вообще-то, там все грустно и запущено. сотрудник: да уж, я читал про 1000 символьный регексп на перле bitfield: тесты к одному чекеру [("\"Abc\\@def\"@example.com",True), ("\"Fred Bloggs\"@example.com",True), ("\"Joe\\Blow\"@example.com",True), ("\"Abc@def\"@example.com",True), ("customer/department=shipping@example.com",True), ("$A12345@example.com",True), ("!def!xyz%abc@example.com",True), ("_somename@example.com",True), ("NotAnEmail",False), ("@NotAnEmail",False), ("\"test\\\\blah\"@example.com",True), ("\"test\\blah\"@example.com",True), -- # Phil gets false for this, which I think is wrong -- # (Dominic Sayers notes the same at the end of the comment thread) ("\"test\\\rblah\"@example.com",True), ("\"test\rblah\"@example.com",False), ("\"test\\\"blah\"@example.com",True), ("\"test\"blah\"@example.com",False), ("customer/department@example.com",True), ("$A12345@example.com",True), ("!def!xyz%abc@example.com",True), ("_Yosemite.Sam@example.com",True), ("~@example.com",True), (".wooly@example.com",False), ("wo..oly@example.com",False), ("pootietang.@example.com",False), (".@example.com",False), ("\"Austin@Powers\"@example.com",True), ("Ima.Fool@example.com",True), ("\"Ima.Fool\"@example.com",False), ("\"Ima Fool\"@example.com",False), ("Ima Fool@example.com",False)] сотрудник: ааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааа!!!!!!!!!!!!!!!!!!!!!!!!!! bitfield: самая жесть, в имейле могут быть круглые скобки, и они должны совпадать isValid "((lol)porges(()comme(nests)nt())@example.com" == False isValid "((lol))porges(()comme(nests)nt())@example.com" == True
isValid "\"s\\\0\"@example.com" == True -- # "s\NUL"@example.com, where NUL is actually the -- # null character! Yep, can't strlen() on email addresses... сотрудник: чудесно bitfield: да я сам в ах^Wвосхищении