[JavaScript] Email validation

Pagina: 1
Acties:

  • X-Stuff
  • Registratie: Augustus 2000
  • Laatst online: 24-08 22:39
Hoi ik heb een scriptje gemaakt zodat velden worden gecontrolleerd of ze goed zijn ingevult. Alleen nu ben ik al uren aan het zoeken waarom het laatste stukje voor het valideren van Email adressen nouw verkeerd gaat.

Dit is de regel waar het fout gaat:

var reg5 = /^.+\\@(\\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$)/;

Inter Explorer zegt het volgende:
Expected ')' in regular expression

Please help ;(

  • Marv
  • Registratie: Oktober 2000
  • Laatst online: 11-06 06:52
Op donderdag 25 april 2002 21:47 schreef X-Stuff het volgende:
Dit is de regel waar het fout gaat:

var reg5 = /^.+\\@(\\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$)/;
Erm :?

"Everything I've ever done or said is the complete opposite of what I've wanted" -- George


  • X-Stuff
  • Registratie: Augustus 2000
  • Laatst online: 24-08 22:39
Op donderdag 25 april 2002 21:48 schreef Marv het volgende:

[..]

Erm :?
... Erm?

  • Marv
  • Registratie: Oktober 2000
  • Laatst online: 11-06 06:52
Op donderdag 25 april 2002 21:50 schreef X-Stuff het volgende:

[..]

... Erm?
Wat the hell moet die regel doen dan :?

Edit: ja een variabele vullen... maar waarom heb je zo'n weirde variabele nodig :?

"Everything I've ever done or said is the complete opposite of what I've wanted" -- George


  • X-Stuff
  • Registratie: Augustus 2000
  • Laatst online: 24-08 22:39
Misschien dat dit duidelijker is
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function valid(form) {
  var field = form.username; // Username field
  var strUsername = field.value; // Username string
  var field2 = form.Password; // Password field
  var strPassword = field2.value; // Password string
  var field3 = form.Email; // email field
  var strEmail = field3.value; // email string
  var reg1 = /\W/; // not valid
  var reg2 = /^[a-zA-Z]{1}[a-zA-Z_0-9]/; // valid
  var reg3 = /^[a-zA-Z_0-9]{1}/; //valid
  var reg4 = /(@.*@)|(\\.\\.)|(@\\.)|(^\\.)/;
  var reg5 = /^.+\\@(\\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$/;
  if (!reg1.test(strUsername) && reg2.test(strUsername) && !reg1.test(strPassword) && reg3.test(strPassword) && !reg4.test(strEmail) && reg5.test(strEmail)) { // if syntax is valid
   // alert("Thank your for your feedback."); // this is optional
    return true;
  }
  alert("Nickname of Paswoord is niet juist.\n\nEr mogen alleen letters en cijfers voorkomen in je Nickname\nEn je Nickname moet beginnen met een letter.\n\nJe password moet uit minimaal een letter of cijfer bestaan."); // this is also optional
  field.focus();
  field.select();
  return false;
}

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 09-09 16:17

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Regexen weet ik niet zoveel vanaf, maar dit kan natuurlijk ook:
code:
1
string.indexOf("@")

geeft het aantal @'s in string. Kan je natuurlijk ook nog eentje maken voor de punt:
code:
1
string.indexOf(".")

:)

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


  • Klippy
  • Registratie: Oktober 2000
  • Laatst online: 23:16

Klippy

Still Game

Hmm je hebt ergens een code vanaf geplukt die niet zo goed werkt geloof ik :P

Probeer gewoon ff zelf wat te verzinne, e-mail validatie is niet echt heel moelijk hoor.
Controlren of er 1x een punt en 1x een @ instaat die niet als 1e of laatste karakter staat is meestal al genoeg.

Steam | SXQncyBhbGwgZ29vZCwgbWFuISDwn5iO


  • X-Stuff
  • Registratie: Augustus 2000
  • Laatst online: 24-08 22:39
Ik heb inderdaad de code ergens vandaag maar die checkde alleen maar voor e-mail de rest (username en password) heb ik er zelf in geplakt. En laat dat nouw het enigste zijn wat nu werkt |:(

  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 23:24

BierPul

2 koffie graag

code:
1
2
3
4
5
6
7
regexp_mail = /^[A-Za-z0-9_-]+([.][A-Za-z0-9_-]+){0,4}[@][A-Za-z0-9_-]+([.][A-Za-z0-9_-]+){1,3}$/;

email = document.aanmeld.email.value;

if (!regexp_mail.test(email)){
            openvelden += "\n - Het e-mail adres is incorrect (voorbeeld@voorbeeld.nl)";
}

Zo doe ik het altijd misschien beetje omslachtig maar het werkt als een trein :P

Ja man


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:28

crisp

Devver

Pixelated

Ik heb er nog een paar:
code:
1
2
3
regexp_mail1 = /^[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)*@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;

regexp_mail2 = /^(([^<>;()[\]\\.,;:@"]+(\.[^<>()[\]\\.,;:@"]+)*)|(".+"))@((([a-z]([-a-z0-9]*[a-z0-9])?)|(#[0-9]+)|(\\[((([01]?[0-9]{0,2})|(2(([0-4][0-9])|(5[0-5]))))\.){3}(([01]?[0-9]{0,2})|(2(([0-4][0-9])|(5[0-5]))))\]))\.)*(([a-z]([-a-z0-9]*[a-z0-9])?)|(#[0-9]+)|(\\[((([01]?[0-9]{0,2})|(2(([0-4][0-9])|(5[0-5]))))\.){3}(([01]?[0-9]{0,2})|(2(([0-4][0-9])|(5[0-5]))))\]))$/;

1e is van Bosmonster, 2e heb ik ook ooit hier ergens vandaan geript. Ook heb ik nog deze functie:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function isEmail(str) {
  // are regular expressions supported?
  var supported = 0;
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported) 
    return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
  return (!r1.test(str) && r2.test(str));
}

Maar vraag me niet welke nou de beste is...

Intentionally left blank


  • GraasGast
  • Registratie: Oktober 2000
  • Laatst online: 03-09 17:11

GraasGast

Analogue Heaven

ik gebruik deze regex:
code:
1
/\b(^([A-Za-z0-9]+@).+(\..{2,4})$)\b/gi

  • Vinzzz243
  • Registratie: Februari 2001
  • Laatst online: 22-01-2025
Op donderdag 25 april 2002 22:33 schreef LOST_GUNT het volgende:
code:
1
2
3
4
5
6
7
regexp_mail = /^[A-Za-z0-9_-]+([.][A-Za-z0-9_-]+){0,4}[@][A-Za-z0-9_-]+([.][A-Za-z0-9_-]+){1,3}$/;

email = document.aanmeld.email.value;

if (!regexp_mail.test(email)){
            openvelden += "\n - Het e-mail adres is incorrect (voorbeeld@voorbeeld.nl)";
}

Zo doe ik het altijd misschien beetje omslachtig maar het werkt als een trein :P
kun je deze niet verbeteren, want nu kun je a@a.aaaaaaaaaa ook opgeven (dus restrictie dat na laatste punt, max 3 of 4 chars kunnen worden opgegeven

  • Vinzzz243
  • Registratie: Februari 2001
  • Laatst online: 22-01-2025
ik neem aan dat de beste restrictie er niet is...in de toekomst zullen mailadressen komen met voorbeeld@voorbeeld.shop ofzo, dus je kunt het nooit perfect maken...

Als iemand hier nou es code post die ervoor zorgt dat:
- voor de "@" alleen letters, cijfers, ".", "-", "_" zijn toegestaan
- na de @ ook
- de laatste 4 )of misschien wel 5, denk aan shop) karakters als volgt uitzien: "." en dan 3 (of 4) letters

da zou toch voldoende zijn?

  • André
  • Registratie: Maart 2002
  • Laatst online: 09-09 14:17

André

Analytics dude

Voor de email voldoet deze wel:
code:
1
^(([^<>;()[\]\\.,;:@"]+(\.[^<>()[\]\\.,;:@"]+)*)|(".+"))@((([a-z]([-a-z0-9]*[a-z0-9])?)|(#[0-9]+)|(\\[((([01]?[0-9]{0,2})|(2(([0-4][0-9])|(5[0-5]))))\.){3}(([01]?[0-9]{0,2})|(2(([0-4][0-9])|(5[0-5]))))\]))\.)*(([a-z]([-a-z0-9]*[a-z0-9])?)|(#[0-9]+)|(\\[((([01]?[0-9]{0,2})|(2(([0-4][0-9])|(5[0-5]))))\.){3}(([01]?[0-9]{0,2})|(2(([0-4][0-9])|(5[0-5]))))\]))$

:7

Dit komt uit hieruit: [topic=391249]

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

{1,3} dingen als validator voor de extensie is echt TABOE. De extensie is namelijk officieel niet beperkt aan een lengte. (denk aan bijvoorbeeld .info, of wat men in de toekomst nog gaat bedenken.. anders kun je dalijk bij een nieuwe toevoeging al je validators gaan updaten :P)

  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 23:24

BierPul

2 koffie graag

Op vrijdag 26 april 2002 09:37 schreef Bosmonster het volgende:
{1,3} dingen als validator voor de extensie is echt TABOE. De extensie is namelijk officieel niet beperkt aan een lengte. (denk aan bijvoorbeeld .info, of wat men in de toekomst nog gaat bedenken.. anders kun je dalijk bij een nieuwe toevoeging al je validators gaan updaten :P)
Daarom :D

Ja man


Verwijderd

Op donderdag 25 april 2002 21:47 schreef X-Stuff het volgende:
Hoi ik heb een scriptje gemaakt zodat velden worden gecontrolleerd of ze goed zijn ingevult. Alleen nu ben ik al uren aan het zoeken waarom het laatste stukje voor het valideren van Email adressen nouw verkeerd gaat.

Dit is de regel waar het fout gaat:

var reg5 = /^.+\\@(\\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$)/;

Inter Explorer zegt het volgende:
Expected ')' in regular expression

Please help ;(
Het aantal haakjes dat je gebruikt klopt niet. Ik tel 3 haakjes openen en 4 sluiten.

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 20:02

RM-rf

1 2 3 4 5 7 6 8 9

Op vrijdag 26 april 2002 11:29 schreef cruesli het volgende:

[..]

Het aantal haakjes dat je gebruikt klopt niet. Ik tel 3 haakjes openen en 4 sluiten.
zijn wel 4 open-brackets

die eerste '[' en laatte ']' zouden ge-escaped moeten zijn, door eem '\' edoch die \ zelf is al ge-escaped door een \ en de bracker dus niet meer.
code:
1
var reg5 = /^.+\\\@(\\\\[?)[a-zA-Z0-9\\\-\\\.]+\\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\\]?)$)/;

maar dit zou al moeten werken
code:
1
var reg5 = /^.+\@(\\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,3}|[0-9]{1,3})(\]?)$)/;

(escapen is volgens mij helemaal niet nodig als je
geen string gebruikt om de regEx in op te slaan)

verder is deze regEx extra moeilijk doordat hij ook IP-adres als achtervoegsel accepteert, eigenlijk zouik eerder een simpele verkiezen die enkel standaard accepteert, maar da's een kwestie van voorkeur voor beter leesbare scripts

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


Verwijderd

Hee ik weet niet of dit nuttig is, maar ik heb nog een script van iemand die ik toen kreeg.

http://members.aol.com/grassblad/html/validEmail.html
Pagina: 1