Autor Zpráva
GgRrCc
Profil
Oerenie adresy regularnym vyrazom
GgRrCc
Profil
Som tu našiel veľmi užitočný skriptík na kontrolu emailu: [url=http://www.jakpsatweb.cz/javascript/priklady/email-regular.html
]http://www.jakpsatweb.cz/javascript/priklady/email-regular.html
[/url]

Má však jednu chybu, napočudovanie napr. prejde pokus@pokus ako správna adresa.

Preto odporúčam regulárny výraz ošetriť takto: "^[_a-zA-Z0-9\.-]+[@]+[_a-zA-Z0-9\.-]+[\.]+[a-zA-Z]{2,4}$"
peta
Profil
"^[_a-zA-Z0-9\.\-]+@[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}$" - orig
"^[_a-zA-Z0-9\.-]+[@]+[_a-zA-Z0-9.-]+[\.]+[a-zA-Z]{2,4}$" - tvuj

[\.]+ = . opakovana 1-n , cili projde
pokus@pokus...............cz

muj (ale ma urcite problemy s adresou localhost, ze se zacykli)

// http://en.wikipedia.org/wiki/Domain_name
// http://www.ietf.org/rfc/rfc3986.txt

var ip0 = "(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])"; //255-250 249-200 199-100 99-10 9-0
var ip = "(?:(?:"+ ip0 +"\.){3}"+ ip0 +")";
a = "[A-Za-z0-9](?:(?:"; b = "?[a-zA-Z0-9]+)*)";
var hostsep = "[_\.-]";
var linksep = "[#%&-;\.\/\=\?_~]";
var mailsep = "[\!#\$%&'\*\+-\/\=\?\^_\`\{\|\}~]";
var xProtocol = "(?:(?:file|ftp|ftps|gopher|http|https|news|nntp|sftp|telnet)\:\/\/|"+ ip +")";
var xDomain = "(?:(?:"+ a + hostsep + b + "\.[a-zA-Z]{2,9})|localhost|"+ ip +")";
// havaruje na http://localhost1/...
var xPort = "(?:\:[0-9]{2,4})?";
var xFilter = new Array ();
/*smile*/
xFilter[0]="\*([1-2]?[0-9])\*";
xSml = (xSett.charAt(3))*1;
/*link*/
if ((xSett.charAt(4))*1==0)
{xFilter[2]="(("+ xProtocol + xDomain +")"+ xPort +"(?:\/" + a + linksep + b +"[\/]?)?)";}
// http://msdn.microsoft.com:80/scripting/default.htm
/*mail*/
if ((xSett.charAt(5))*1==0)
{xFilter[3]= a + mailsep + b + "@"+ xDomain + xPort;}
// RFC2821/RFC2822 e-mailAddress[64]@domainName[255]
// me@24.111.232.1 joe_smith@here.com you.me.hello@somewhere.else.cc u-s_e.r1@s-ub2.domain-name.museum:8080 PN=Joe/OU=X400/@gateway.com

//source = source.replace(/@/g,"@"); //innerHTML bug Opera @"
source = source.replace(/"/g,"""); //innerHTML bug Opera @"
//source = source.replace(/&/g,"&");

for (i in xFilter)
...
GgRrCc
Profil
"^[_a-zA-Z0-9.-]+@[_a-zA-Z0-9.-]+.[a-zA-Z]{2,4}$" - orig
"^[_a-zA-Z0-9.-]+[@]+[_a-zA-Z0-9.-]+[.]+[a-zA-Z]{2,4}$" - tvuj

[.]+ = . opakovana 1-n , cili projde
pokus@pokus...............cz


takto by to malo byt lepsie:

"^[_a-zA-Z0-9\.\-]+[@]{1}[_a-zA-Z0-9\.\-]+[\.]{1}[a-zA-Z]{2,4}$"
Leo
Profil
Ona je otazka, jestli cela ta habadura stoji za namahu - staci, aby vam tam uzivatel napsal pepa@seznam.cz, projde to a existenci schranky si stejne nemate jak overit... Leo
GgRrCc
Profil
v podstate je to pre dobro ako take... mne sa napriklad uz vela krat stalo ze som sa pomylyl v adrese..takto je to overene..takze to cenu ma..
peta
Profil
"^[_a-zA-Z0-9\.\-]+@[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}$" - orig
"^[_a-zA-Z0-9\.\-]+[@]+[_a-zA-Z0-9\.\-]+[\.]+[a-zA-Z]{2,4}$" - tvuj1
"^[_a-zA-Z0-9\.\-]+[@]{1}[_a-zA-Z0-9\.\-]+[\.]{1}[a-zA-Z]{2,4}$" - tvuj2

vis co, ja to chtel jen ukazat, kde je konkretni zmena v porovnani s originalem. Nic vic. Tva druha zmena je naprosto stejna jako original, jen jinak zapsana.
Jo, pozor na zpetna lomitka, viz:
http://www.visibone.com/regular-expressions/
nekde musi byt a nekde nemusi. Treba jsi na nejake zapomnel, protoze:
\. = "."
. = jakykoliv znak
peta
Profil
tohle pridam pod to, protoze jsem linej zas pridavat lomitka...

Jinak souhlasim s tou kontrolou, tez se mi to parkrat stalo, ale asi v tvem pripade by to melo byt spise upozorneni a zeptat se, jestli je mailova adresa skutecne spravna. Ikdyz pro ceske maily by to melo fungovat a je dobrym zvykem pouzivat prave takovy typ a ne ty divotvorne.
Toto téma je uzamčeno. Odpověď nelze zaslat.