webForumDet fria alternativet

Email validering ?

39 svar · 903 visningar · startad av Pellefant · sida 2 av 2

DinoMedlem sedan sep. 20011 914 inlägg
#21

Kan ju testa denna annars:

\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
JojoxxMedlem sedan juni 20004 308 inlägg
#22

Släpper glatt i hågen igenom ex:

"^{@ _@_.sv^£r^i¨ge va?"

:)

DinoMedlem sedan sep. 20011 914 inlägg
#23

Nä, den strängen släpper den inte igenom. :)

Peter SMedlem sedan dec. 20025 483 inlägg
#24

Strängen tillåter en för stor längd på domänsuffixet ;)

:)

DinoMedlem sedan sep. 20011 914 inlägg
#25

Kan inte regex så jag skall inte säga något. Tog den ifrån editorn webMatrix.
Är denna bättre då, det är den som fått högst betyg på https://www.regexlib.com för epost.

^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$

eller denna

^([a-zA-Z0-9_\-])+(\.([a-zA-Z0-9_\-])+)*@((\[(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5]))\]))|((([a-zA-Z0-9])+(([\-])+([a-zA-Z0-9])+)*\.)+([a-zA-Z])+(([\-])+([a-zA-Z0-9])+)*))$
PellefantMedlem sedan maj 20023 372 inlägg
#26

Intressant detta :)

JojoxxMedlem sedan juni 20004 308 inlägg
#27

Dino skrev:

Nä, den strängen släpper den inte igenom.

Joo, eftersom regexpet saknar ^ och $ i början och slut. ;)

^([a-zA-Z0-9_\-])+(\.([a-zA-Z0-9_\-])+)*@((\[(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5]))\]))|((([a-zA-Z0-9])+(([\-])+([a-zA-Z0-9])+)*\.)+([a-zA-Z])+(([\-])+([a-zA-Z0-9])+)*))$

Här verkar man ha velat ta med IP, men "johan@127.0.0.1" är inte ok medans "johan@127.0.0.se" är.

Nej, vad säger ni om att skjuta detta åt sidan? :)

Peter SMedlem sedan dec. 20025 483 inlägg
#28

Låter bra det. Min slutsats blir att inte vara så petig gällande klientsidevalideringen. Med ett serversidespråk dock, är det möjligt att kontrollera huruvida en domän faktiskt existerar och på så sätt hindra adresser som hjhjhkhk@hjhjhkhk.com att slippa igenom. För att försvåra det hela ytterligare är det även möjligt att kontakta mailservern för domänen och sedan kontrollera att användarnamnet är korrekt.

:)

PellefantMedlem sedan maj 20023 372 inlägg
#29

Bara "_" funkar, så är jag glad :)

calsonMedlem sedan dec. 2003487 inlägg
#30

Någon som kan hjälpa mig med det här problemet?

<html>
<head>

<script language="JavaScript">

String.prototype.isValidEmail = function(){
	return !!this.match(/^([a-zA-Z0-9\_\-]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9\_-]{1})@([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})\.([a-zA-Z]{2,4})$/)
}

function formvalidation() {
  if (document.yo.email.value.isValidEmail())
  {
    {document.getElementById('errImage').src='gfx/errRed.gif'}
  }
  else
  {
    {document.getElementById('errImage').src='gfx/errGreen.gif'}
  }
}

</script>

</head>
<body>

<img src="gfx/errRed.gif" id="errImage">
<form name="yo">
  <input type="text" name="email" onkeyup="formvalidation()">
  <input type="submit" value="yoyoyo">
</form>

</body>
</html>

När jag skrivit in 1 bokstav i epost fältet så blir sätts den gröna bilden in?

dectgapMedlem sedan sep. 20021 655 inlägg
#31

Testa att ändra till:

<html>
<head>

<script language="JavaScript">

String.prototype.isValidEmail = function(){
	return !!this.match(/^([a-zA-Z0-9\_\-]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9\_-]{1})@([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})\.([a-zA-Z]{2,4})$/)
}

function formvalidation(email) {
  if (!email.isValidEmail())
  {
    document.getElementById('errImage').src='gfx/errRed.gif';
  }
  else
  {
    document.getElementById('errImage').src='gfx/errGreen.gif';
  }
}

</script>

</head>
<body>

<img src="gfx/errRed.gif" id="errImage">
<form>
  <input type="text" name="email" onkeyup="formvalidation(this.value)">
  <input type="submit" value="yoyoyo">
</form>

</body>
</html>
calsonMedlem sedan dec. 2003487 inlägg
#32

då stannar den röda bilden kvar även när man har en korrekt epost adress

calsonMedlem sedan dec. 2003487 inlägg
#33

Jag glömde att sätta in formvalidation(this.value) :)
Tack för hjälpen dectgap, nu funkar det

calsonMedlem sedan dec. 2003487 inlägg
#34

Hur gör jag så den kollar om strEpost inte matchar koden nedan?

    else if(document.frmAddUser.strEpost.value.match((/^([a-zA-Z0-9\_\-]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9\_-]{1})@([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})\.([a-zA-Z]{2,4})$/)))
     {alert("Du skrev in en ogiltif epost adress"); return false;}
calsonMedlem sedan dec. 2003487 inlägg
#35

Så svårt va det :L

    else if(document.frmAddUser.strEpost.value.match((/^([a-zA-Z0-9\_\-]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9\_-]{1})@([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})\.([a-zA-Z]{2,4})$/))!=true)
     {alert("Du skrev in en ogiltif epost adress"); return false;}

:)

calsonMedlem sedan dec. 2003487 inlägg
#36

Nä det funkade inte.
Även när jag skriver i en giltig epost adress kommer alert rutan upp :(

JojoxxMedlem sedan juni 20004 308 inlägg
#37

Använd prototypen. Du behöver inte skriva om regexpet i varje test.

String.prototype.isValidEmail = function(){
	return !!this.match(/^([a-zA-Z0-9\_\-]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9\_-]{1})@([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})\.([a-zA-Z]{2,4})$/)
}
// ...
if(!document.frmAddUser.strEpost.value.isValidEmail()){
   alert("fel fel fel"); return false;
}
calsonMedlem sedan dec. 2003487 inlägg
#38

jag prövade det men det funkade inte.
Det ändå som händer hela checkForm funktionen hoppas över

onSubmit till frmAddUser

  function checkForm()
   {
    var obj=document.frmAddUser;
    var pn=new personnummer(obj.strY.value.substring(2)+obj.strM.value+obj.strD.value+((obj.strN.value)?"-"+obj.strN.value:""));

    if (document.frmAddUser.strNamn.value.length <1)
     {alert("Ditt namn måste vara minst ett eller fler tecken långt"); return false;}
    else if (document.frmAddUser.strAnv.value.search(/^[^0-9]{1}[0-9A-Öa-ö_ ]+$/) == -1)
     {alert("Du kan inte använda ett användarnamn som använder sig av andra tecken än [a-z, A-Z, 0-9 och _]"); return false;}
    else if(document.frmAddUser.strAnv.value <=3)
     {alert("Ditt användarnamn måste vara 4 eller fler tecken"); return false;}
    else if(document.frmAddUser.strLosen.value <=5)
     {alert("Ditt lösenord måste vara 6 eller fler tecken"); return false;}
    else if(document.frmAddUser.strLosen.value != document.frmAddUser.strLosen2.value)
     {alert("Lösenorden matchade inte varandra"); return false;}
    [b]elseif(!document.frmAddUser.strEpost.value.isValidEmail())
     {alert("Du skrev in en ogiltig epost adress"); return false;}[/b]
    else if(!pn.valid)
     {alert("Du måste fylla i ett fullständigt personnummer"); return false;}
    else if (document.frmAddUser.strStad.value == "blank")
     {alert("Du måste klicka för vilken stad du bor i"); return false;}
    else if (document.frmAddUser.strOrt.value == "blank")
     {alert("Du måste klicka för vilken ort du bor i"); return false;}
    else if(document.frmAddUser.strVillkor.checked!=true)
     {alert("Du måste gofvänna våra villkor"); return false;}
     }
JojoxxMedlem sedan juni 20004 308 inlägg
#39

else if inte elseif :)

calsonMedlem sedan dec. 2003487 inlägg
#40

ibland är man ju blind :)
antar att jag onte borde jobba med asp medans jag lär min JS :L

136 ms totalt · 3 externa anrop · v20260731065814-full.30151723
133 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)