argon bulletin board

Факултети => Факултет по математика и информатика => Темата е започната от: JOKe в 12.07.2007, 11:29:25

Титла: E-mail валидация ? как я правите ? сами с Regular Expresion ?: )
Публикувано от: JOKe в 12.07.2007, 11:29:25
Едно време имаше подобна тема
лично въпроса ми се подбуди от този блог
http://www.santosj.name/programming/php-related/php/stop-doing-email-validation-the-wrong-way/
мисля че наистина повечето отговори на въпросите който той е дал са ДА :) и както казва СПРЕТЕ да го правите.
:)
лично регулярния израз дето ползвам който явно е НАПЪЛНО грешен е :
^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$
Титла: Re: E-mail валидация ? как я правите ? сами с Regular Expresion ?: )
Публикувано от: NeshtoSeSluchi в 12.07.2007, 13:09:27
Хаха значи го правя вярно :)
От тези въпроси само дето знам какво е RFC и то ми отне доста време да се сетя. Regex-а идва от менюто на студиото. Сега за първи път се загледах с него и е ето това:
\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
Титла: Re: E-mail валидация ? как я правите ? сами с Regular Expresion ?: )
Публикувано от: Иван Йорданов в 12.07.2007, 13:16:00
Аз пък не правя проверка :)
Вижда ми се излишно да натоварвам сървъра с един регулярен израз повече.
Направо пращам маил. Ако не ми потвърди регистрацията до 1 ден трия акаунта
Естествено преди да вкарам майла в базата проверявм за разни инжекций.
Титла: Re: E-mail валидация ? как я правите ? сами с Regular Expresion ?: )
Публикувано от: JOKe в 12.07.2007, 14:07:21
само флуудиш сървъра с ненужни глупости да праща майлове а й така не предпазваш потребителите от самите тях...
дано не си замесен в оня сайт zamunda.bg ли кво беше за торенти че там регистрацията е нещо ужасно и надушвам някой с подобни на твоите наклонности
Титла: Re: E-mail валидация ? как я правите ? сами с Regular Expresion ?: )
Публикувано от: Иван Йорданов в 12.07.2007, 14:15:45
Не съм замесен :)
въобще не работя за БГ.

Просто си искам валидация на майла от човека. Все пак се очаква тоя майл който ми дава да го ползвам за нещо.
Например да му изпратя фактура
Титла: Re: E-mail валидация ? как я правите ? сами с Regular Expresion ?: )
Публикувано от: Sayos в 12.07.2007, 15:07:48
Да смачкаме гадните торенти!
Титла: Re: E-mail валидация ? как я правите ? сами с Regular Expresion ?: )
Публикувано от: TeeRexX в 12.07.2007, 15:14:00
Хаха значи го правя вярно :)
От тези въпроси само дето знам какво е RFC и то ми отне доста време да се сетя. Regex-а идва от менюто на студиото. Сега за първи път се загледах с него и е ето това:
\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
Тоя експрешън май не е най-перфектния който може да съществува - веднъж беше "пропуснал" през себе си адрес, който когато по-късно конструирах от него класа System.Net.MailAddress хвърли exception, че не е валиден.
Между другото за .netаджиите това е начин да се проверява валидността - пробваш да конструираш обект от класа System.Net.MailAddress и ако не хвърли exception значи всичко е ОК.
Титла: Re: E-mail валидация ? как я правите ? сами с Regular Expresion ?: )
Публикувано от: NeshtoSeSluchi в 12.07.2007, 15:16:10
Е то ако е работата да сме "съвсем точни" всички сме виждали оня Regex за майл дето е на 2 екрана и е по RFC
Титла: Re: E-mail валидация ? как я правите ? сами с Regular Expresion ?: )
Публикувано от: Иван Йорданов в 12.07.2007, 15:23:25
Да смачкаме гадните торенти!

Точно така до преди 3 месеца ги защитавахме сега да ги мачкаме  :sun:

Хаха значи го правя вярно :)
От тези въпроси само дето знам какво е RFC и то ми отне доста време да се сетя. Regex-а идва от менюто на студиото. Сега за първи път се загледах с него и е ето това:
\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
Тоя експрешън май не е най-перфектния който може да съществува - веднъж беше "пропуснал" през себе си адрес, който когато по-късно конструирах от него класа System.Net.MailAddress хвърли exception, че не е валиден.
Между другото за .netаджиите това е начин да се проверява валидността - пробваш да конструираш обект от класа System.Net.MailAddress и ако не хвърли exception значи всичко е ОК.

Наистина не е правилен регулярния израз.

може да пусне адрес от рода на 123@example.com. Идеята е че един mail НЕ може да започва с цифра (до колкото си спомням RFC) а може да има и други пропуски, но това се вижда на пръв поглед.
Пропускането се отнася специално за PHP където "\w" означава "any word character", а цифрите влизат в това число според PHP.
В Пърл мисля че не е така.
Титла: Re: E-mail валидация ? как я правите ? сами с Regular Expresion ?: )
Публикувано от: NeshtoSeSluchi в 12.07.2007, 15:48:32
Ми не е верен много ясно. Верния е 2 екрана нали това ви се казва. Даже на онзи блог пише да се осъзнаете, че няма смисъл да се мъчите да го докарате по RFC.

P.S. В .NET \w включва цифри
Титла: Re: E-mail валидация ? как я правите ? сами с Regular Expresion ?: )
Публикувано от: JOKe в 12.07.2007, 16:01:02
моя не почва с \w
май като гледам сам изпуснал един + начи
^[a-zA-Z][\w\.-+]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$

невярвам да може да завърши на +@assasa нали :)
Титла: Re: E-mail валидация ? как я правите ? сами с Regular Expresion ?: )
Публикувано от: javahaterphplover в 24.07.2007, 20:02:12
Да смачкаме гадните торенти!

Да бе, ама ти се регистрираш в тях нали:

http://plovdivtorrents.com/userdetails.php?id=4346  :-D :-D :-D


Btw, ако трябва да сме педантични, освен на сървърно ниво, може и чрез Javascript преди това да проверяваме:

.......
.......
var reg=/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/;
var textval = document.form1.text1.value; var result = reg.test(textval);if(!result) alert("no match, cannot cantinue"); else alert("Match")
......
......
Титла: Re: E-mail валидация ? как я правите ? сами с Regular Expresion ?: )
Публикувано от: JOKe в 30.07.2007, 14:05:13
ами глупости това на нормалните framework-ове се генерира само да няма да го пиша кат гламав php-аджия :)
Титла: Re: E-mail валидация ? как я правите ? сами с Regular Expresion ?: )
Публикувано от: Sayos в 30.07.2007, 14:22:23
javahaterphplover, точно този тракер ме отказа от торентите, я като си тръгнал дай ми линк към форума на free zone?
Титла: Re: E-mail валидация ? как я правите ? сами с Regular Expresion ?: )
Публикувано от: javahaterphplover в 09.08.2007, 21:40:47
ами глупости това на нормалните framework-ове се генерира само да няма да го пиша кат гламав php-аджия :)

еми в някои го има, ама ако ги ползваш, защо тогава си пуснал темата  :hihi: :hihi: :hihi:
Титла: Re: E-mail валидация ? как я правите ? сами с Regular Expresion ?: )
Публикувано от: NeshtoSeSluchi в 09.08.2007, 22:46:19
Да то си личи, че е гузен. Аз примерно не пасвах на никое от условията посочени в статията (освен, че знаех какво е RFC) и изобщо нямаше да ми хрумне да занимавам хората с нея, но явно някой е отговарял смело с "да" :)
Титла: Re: E-mail валидация ? как я правите ? сами с Regular Expresion ?: )
Публикувано от: JOKe в 10.08.2007, 00:05:38
ами глупости това на нормалните framework-ове се генерира само да няма да го пиша кат гламав php-аджия :)

еми в някои го има, ама ако ги ползваш, защо тогава си пуснал темата  :hihi: :hihi: :hihi:
Мноу си зле ;)
обяаснявам веднъж
Struts :
избираш си да кажем Regular Expression валидатор
пишеш израза
пишеш кой е мессаге-а за грешка

и той ти генерира както Check на сървърната страна при събмит така и JavaScripta за клиент сайд
имах предвид че генерира JScript за check на regex а не че има Email Validator
Титла: Re: E-mail валидация ? как я правите ? сами с Regular Expresion ?: )
Публикувано от: javahaterphplover в 10.08.2007, 01:09:42
E-mail валидация ? как я правите ? сами с Regular Expresion ?

Това е заглавието на темата, след последния ти пост, сам реши кой е зле  :D

Нали искаш да знаеш кой как я прави, ако искаш да спорим относно кой начин е по-добър, пусни друга тема!!!

Друго, сравни:

това:

1. избираш си да кажем Regular Expression валидатор
2. пишеш израза
3. пишеш кой е мессаге-а за грешка

4.и той ти генерира както Check на сървърната страна при събмит така и JavaScripta за клиент сайд

с това:

1.
var reg=/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/;
var textval = document.form1.text1.value; var result = reg.test(textval);if(!result) alert("no match, cannot cantinue"); else alert("Match")

 :no:
Титла: Re: E-mail валидация ? как я правите ? сами с Regular Expresion ?: )
Публикувано от: JOKe в 10.08.2007, 11:37:35
E-mail валидация ? как я правите ? сами с Regular Expresion ?

Това е заглавието на темата, след последния ти пост, сам реши кой е зле  :D

Нали искаш да знаеш кой как я прави, ако искаш да спорим относно кой начин е по-добър, пусни друга тема!!!

Друго, сравни:

това:

1. избираш си да кажем Regular Expression валидатор
2. пишеш израза
3. пишеш кой е мессаге-а за грешка

4.и той ти генерира както Check на сървърната страна при събмит така и JavaScripta за клиент сайд

с това:

1.
var reg=/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/;
var textval = document.form1.text1.value; var result = reg.test(textval);if(!result) alert("no match, cannot cantinue"); else alert("Match")

 :no:

Всъщност не си показал как да се взимат съобщенията от ресурсен файл :) тва MATCH е много добро ! :)
хаха отделно супер лесно е за поддръжка мале добре че никой не пише на php
за сравнение на струтс :
<field
    property="emailAddress"
    depends="required,mask">
    <msg
        name="mask"
        key="registrationForm.email.maskmsg"/>
    <arg0 key="registrationForm.email.displayname"/>
    <var>
        <var-name>mask</var-name>
<var-value>^[a-zA-Z][\w\.-+]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$</var-value>
    </var>
</field>

като за всяко поле с copy пасте в XML файл се сменя името на property + 2ta key-а
Титла: Re: E-mail валидация ? как я правите ? сами с Regular Expresion ?: )
Публикувано от: NeshtoSeSluchi в 10.08.2007, 15:05:17
Отварям си дизайнера. Drag&drop RegularExpressionValidator - пиша му там някакви съобщения ако искам ако не оставям тези дето са по подразбиране. Избирам му кой контрол да валидира. Избирам си от менюто E-mail валидация (през това време виждаме, че са ни направили 20тина други полезни неща като URL,  френски/немски/американски телефонен номер и прочие) и сме готови. Програмирането трябва да е само с мишка.
Титла: Re: E-mail валидация ? как я правите ? сами с Regular Expresion ?: )
Публикувано от: JOKe в 10.08.2007, 19:49:43
о не знам много неща избираш заболя ме главата
аз натискам CTRL+C и CTRL+V
Титла: Re: E-mail валидация ? как я правите ? сами с Regular Expresion ?: )
Публикувано от: NeshtoSeSluchi в 10.08.2007, 20:26:08
Да но преди това пишеш. То и аз след като един път ги избера отивам и почвам да натискам ctrl+c/ctrl+v.
Титла: Re: E-mail валидация ? как я правите ? сами с Regular Expresion ?: )
Публикувано от: JOKe в 10.08.2007, 20:32:16
ами не преди това отварям стар проект и copy paste :)
има един feature вероятно ти е познат да се отварят няколко проекта ;)
Титла: Re: E-mail валидация ? как я правите ? сами с Regular Expresion ?: )
Публикувано от: NeshtoSeSluchi в 10.08.2007, 20:57:52
Да. Навсякъде го има. Само дето не виждам що трябва да отварям стар проект като мога да drag & drop.
Титла: Re: E-mail валидация ? как я правите ? сами с Regular Expresion ?: )
Публикувано от: TaBuPeH в 05.09.2007, 16:34:58
Ето ви го моят регексп

^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$

може да не е перфектен, но върши доста добра работа :)