/ / Overenie e-mailu v jazyku JavaScript nefunguje správne, POMOC? [duplikát] - javascript, regex

JavaScript email overenie nefunguje správne, pomoc? [kopírovať] - javascript, regex

Možné duplicitné:
Aký je najlepší regulárny výraz na overenie e-mailových adries?

Ahojte všetci,

Mám tento regex / kód na overenie e-mailovej adresy:

var testEmail = /^([A-Za-z0-9_-.])+@([A-Za-z0-9_-.])+.([A-Za-z]{2,4})$/;

if ( testEmail.test(oForm["email"]) == false){
chErrorMessage += "nValid email address";
bSubmit = false;
}

Zdá sa, že kód nevykonáva test správne, či je e-mail správne naformátovaný alebo nie.

Som začiatočník v jazyku JavaScript. Akákoľvek pomoc by sa veľmi ocenila, ďakujem

odpovede:

1 pre odpoveď č. 1

Najprv by som týmto spôsobom získal vstupný objekt formulára

document.oForm["email"]

namiesto

oForm["email"]

Potom by ste mali získať hodnotu vstupu, nie samotného vstupu:

document.oForm["email"].value

Ak chcete, spustite podmienený kód true, nie false, takže podmienkou by malo byť:

testEmail.test(document.oForm["email"].value) == true

Nie je však príliš elegantné porovnávať booleovskú hodnotu true alebo false, pretože samotná porovnávaná hodnota je dostatočná na použitie ako podmienka:

if (testEmail.test(document.oForm["email"].value)) {
// ...
}

Váš kód pre mňa po týchto zmenách fungoval. však, Použil by som riešenie s JQuery, pretože toby sa postaral o všetky nekonečné podrobnosti, ktoré váš regex ignoruje o e-mailoch. OTOH, dúfam, že ste lepšie porozumeli tomu, ako regexy vlastne fungujú v JavaScripte.

HTH


2 pre odpoveď č. 2

Na tento účel používam doplnok na overenie platnosti jQuery: http://docs.jquery.com/Plugins/validation

Podporuje overenie e-mailovej adresy.


0 pre odpoveď č. 3

Vyskúšajte tento kód: -

/**
* DHTML email validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
*/

function echeck(str) {

var at="@"
var dot="."
var lat=str.indexOf(at)
var lstr=str.length
var ldot=str.indexOf(dot)
if (str.indexOf(at)==-1){
return false
}

if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
return false
}

if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
return false
}

if (str.indexOf(at,(lat+1))!=-1){
return false
}

if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
return false
}

if (str.indexOf(dot,(lat+2))==-1){
return false
}

if (str.indexOf(" ")!=-1){
return false
}

return true
}

function ValidateForm(){
return echeck(document.oForm["email"].value);
}

A nakoniec len zavolajte ValidateForm() a bez ohľadu na to, akú návratnú hodnotu dostanete, je to platnosť e-mailu!

Na zdravie! : D