argon bulletin board
Факултети => Факултет по математика и информатика => Темата е започната от: 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]$
-
Хаха значи го правя вярно :)
От тези въпроси само дето знам какво е RFC и то ми отне доста време да се сетя. Regex-а идва от менюто на студиото. Сега за първи път се загледах с него и е ето това:
\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
-
Аз пък не правя проверка :)
Вижда ми се излишно да натоварвам сървъра с един регулярен израз повече.
Направо пращам маил. Ако не ми потвърди регистрацията до 1 ден трия акаунта
Естествено преди да вкарам майла в базата проверявм за разни инжекций.
-
само флуудиш сървъра с ненужни глупости да праща майлове а й така не предпазваш потребителите от самите тях...
дано не си замесен в оня сайт zamunda.bg ли кво беше за торенти че там регистрацията е нещо ужасно и надушвам някой с подобни на твоите наклонности
-
Не съм замесен :)
въобще не работя за БГ.
Просто си искам валидация на майла от човека. Все пак се очаква тоя майл който ми дава да го ползвам за нещо.
Например да му изпратя фактура
-
Да смачкаме гадните торенти!
-
Хаха значи го правя вярно :)
От тези въпроси само дето знам какво е RFC и то ми отне доста време да се сетя. Regex-а идва от менюто на студиото. Сега за първи път се загледах с него и е ето това:
\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
Тоя експрешън май не е най-перфектния който може да съществува - веднъж беше "пропуснал" през себе си адрес, който когато по-късно конструирах от него класа System.Net.MailAddress хвърли exception, че не е валиден.
Между другото за .netаджиите това е начин да се проверява валидността - пробваш да конструираш обект от класа System.Net.MailAddress и ако не хвърли exception значи всичко е ОК.
-
Е то ако е работата да сме "съвсем точни" всички сме виждали оня Regex за майл дето е на 2 екрана и е по RFC
-
Да смачкаме гадните торенти!
Точно така до преди 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.
В Пърл мисля че не е така.
-
Ми не е верен много ясно. Верния е 2 екрана нали това ви се казва. Даже на онзи блог пише да се осъзнаете, че няма смисъл да се мъчите да го докарате по RFC.
P.S. В .NET \w включва цифри
-
моя не почва с \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 нали :)
-
Да смачкаме гадните торенти!
Да бе, ама ти се регистрираш в тях нали:
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")
......
......
-
ами глупости това на нормалните framework-ове се генерира само да няма да го пиша кат гламав php-аджия :)
-
javahaterphplover, точно този тракер ме отказа от торентите, я като си тръгнал дай ми линк към форума на free zone?
-
ами глупости това на нормалните framework-ове се генерира само да няма да го пиша кат гламав php-аджия :)
еми в някои го има, ама ако ги ползваш, защо тогава си пуснал темата :hihi: :hihi: :hihi:
-
Да то си личи, че е гузен. Аз примерно не пасвах на никое от условията посочени в статията (освен, че знаех какво е RFC) и изобщо нямаше да ми хрумне да занимавам хората с нея, но явно някой е отговарял смело с "да" :)
-
ами глупости това на нормалните framework-ове се генерира само да няма да го пиша кат гламав php-аджия :)
еми в някои го има, ама ако ги ползваш, защо тогава си пуснал темата :hihi: :hihi: :hihi:
Мноу си зле ;)
обяаснявам веднъж
Struts :
избираш си да кажем Regular Expression валидатор
пишеш израза
пишеш кой е мессаге-а за грешка
и той ти генерира както Check на сървърната страна при събмит така и JavaScripta за клиент сайд
имах предвид че генерира JScript за check на regex а не че има Email Validator
-
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:
-
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-а
-
Отварям си дизайнера. Drag&drop RegularExpressionValidator - пиша му там някакви съобщения ако искам ако не оставям тези дето са по подразбиране. Избирам му кой контрол да валидира. Избирам си от менюто E-mail валидация (през това време виждаме, че са ни направили 20тина други полезни неща като URL, френски/немски/американски телефонен номер и прочие) и сме готови. Програмирането трябва да е само с мишка.
-
о не знам много неща избираш заболя ме главата
аз натискам CTRL+C и CTRL+V
-
Да но преди това пишеш. То и аз след като един път ги избера отивам и почвам да натискам ctrl+c/ctrl+v.
-
ами не преди това отварям стар проект и copy paste :)
има един feature вероятно ти е познат да се отварят няколко проекта ;)
-
Да. Навсякъде го има. Само дето не виждам що трябва да отварям стар проект като мога да drag & drop.
-
Ето ви го моят регексп
^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$
може да не е перфектен, но върши доста добра работа :)