mai 2

Java Script Validator pentru e-mail

In urma cu ceva vreme, am avut nevoie de un Java script validator pentru e-mail. Si trebuie sa recunosc ca mi-a dat putin de lucru functia de mai jos, deoarece aveam si alte functii de validare in codul meu si se cam bateau cap in cap.

Prea multe nu am ce sa va explic, legat de codul de mai jos, pentru ca fac presupunerea ca deja ai ceva cunostinte de baza, care sa te faca sa intelegi codul foarte usor.

In primul rand, avem functia definita in java script cu o expresie regulata, pe care nici eu, unul, nu o pricep perfect, dar am furat-o si eu dintr-o carte.

<script type=’text/javascript’>
function validare_email(formular,email) {
   var reg = /^([A-Za-z0-9_-.])+@([A-Za-z0-9_-.])+.([A-Za-z]{2,4})$/;
   var address = document.forms[formular].elements[email].value;
   if(reg.test(address) == false) {
      alert(‘Adresa e-mail invalida!’);
      return false;
   }
}
</script>
Apoi avem codul html care contine formularul:
<form name=”formular” method=”post” action=”action_form.php” >
<input name=”adresa_email” type=”text”  id=”adresa_email”  />
<a href=”javascript:document.resetpwd_form.submit()” 
onclick=”return validare_email(‘formular’,’email’)”>
<br/>
<img src=”images/trimite.png” alt=”trimite datele” border=”0″  name=”sub_but” />
</a>
</form>

Daca nu te descurci, atunci da-mi un e-mail si mai vin cu explicatii suplimentare (in limita timpului disponibil) sau lasa un comentariu.

Ti-a placut acest articol? Sustine-ma pe Patreon!
  1. Salut, vezi ca al doilea parametru de la apelul functiei ar trebui sa fie adresa_email in cazul tau, dar asta nu e chiar asa relevant.

    Ce se intampla daca ai primesti ca adresa de email una din urmatoarele:
    test@ion..com
    test@.ion.com

    Expresia regulata folosita nu ofera o validare completa.

  2. Pai ti-am zis ca am furat-o de pe net :)) cea mai lame solutie e sa adaugi de doua ori
    ([A-Za-z0-9_-.])+. dupa @ sau ^ si ar merge pentru ceva.ceva.com cazul al doilea descris de tine.

    La parametrii i-am mai modificat din codul meu sursa unde erau altfel si e posibl sa fi uitat peste tot sa modific.

Comentariile sunt inchise.