Script validare sir cu RegExp in JavaScript

Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
tycyssg
Mesaje:58

Script validare sir cu RegExp in JavaScript

Salut !

Mai demult am luat de pe site de aici scriptul de mai jos pentru validare input forms.

Acum a trebuit sa-l folosesc dar mi-am dat seama ca isi face treaba doar pe jumatate.Functioa search nu functioneaza.De exemplu pentru acest cam ce ar trebui sa introduc numai o adresa de email,atunci cand bag cel putin 9 caractere fara @ sau . trece mai departe.si asa se intampla si pentru variabila de regx_chr care ar trebui sa impiedice introducerea de caractere speciale.

Vreo rezolvare?

Cod: Selectaţi tot

var regx_chr = /^([a-zA-Z0-9_- ]+)$/;
var regx_mail = /^(([^<>()[]\.,;:s@"]+(.[^<>()[]\.,;:s@"]+)*)|(".+"))@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}])|(([a-zA-Z-0-9]+.)+[a-zA-Z]{2,}))$/;    // RegExp pt. adresa e-mail

// Functia care e apelata la "onsubmit"
// preia campurile din formular, verifica /valideaza datele adaugate

 //Submit vALIDATION Begin
 function showMessage() {
alert ("Warning ! You try to delete the paragraph selected , You sure you want to proceed?");
return true;
}
//Submit vALIDATION End
 
 
//Form About ADD
function checkFormanewslett(frm1) {
  var fre = false;             // variabila ce va fi returnata de functie

  // preluare casete formular
  var newsletter = frm1.newsletter;
  
  if(newsletter.value.length<9 || newsletter.value.length>50 || newsletter.value.search(regx_mail)==-1) {
    alert('Warning!What you enter there is not a email adress !');
    newsletter.select();    // selecteaza casuta pt. Parola
  }
 
  else fre = true;

  return fre;
}

MarPlo Mesaje:4343
Salut
Nu imi dau seama la ce fel de sir pentru email spui ca nu functioneaza. Da exemplu adresa de email la care te referi.

tycyssg Mesaje:58
Am zis ca functia search nu functioneaza.adica daca in input pun mai Putin de 9 caractere spare warning,dar daca pun 9 caractere de genu asfjdjeirbfe lasa sa treaca mai departe nu face verificarea daca e intradevar in email sau nu.

MarPlo Mesaje:4343
Am modificat variabilele "regx_chr" si "regx_mail".
Uite un exemplu care functioneaza cu acele formule RegExp si il poti testa direct aici:

Cod: Selectaţi tot

<input type="text" id="newsletter" name="newsletter" />
<button id="check_nl">Check</button>
<script>
var regx_chr = /^([a-zA-Z0-9_ -]+)$/;
var regx_mail = /^(([^\<\>\(\)\[\]\.,;:s@"]+(.[^\<\>\(\)\[\]\.,;:s@"]+)*)|(.+?))@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}])|(([a-zA-Z-0-9]+.)+[a-zA-Z]{2,}))$/;

function checkFormanewslett(newsletter) {
  var fre = false;
  if(newsletter.value.length<9 || newsletter.value.length>50 || newsletter.value.search(regx_mail)==-1) {
    alert('Warning!What you enter there is not a email adress !');
    newsletter.select();
  }
  else {
    fre = true;
    alert('ok');
  }

  return fre;
}
document.getElementById('check_nl').addEventListener('click', function(){ checkFormanewslett(document.getElementById('newsletter'));});
</script>
Rezultat:

2. Sau, cu HTML5 poti folosi noile elemente de formular, care recunosc RegEx, are si casuta pt email.
Exempu:

Cod: Selectaţi tot

<form action="#" method="post">
Pasword: <input type="text" name="pass" pattern="[a-zA-Z0-9_ -]{6,15}" title="6-15 characters: Letters, Numbers, dash and space" required /><br>
Email: <input type="email" name="email" required /><br>
<input type="submit" value="Send" />
</form>
Rezultat:
Pasword:
Email: