webForumDet fria alternativet

Email validering ?

JavaScriptur Javascript

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

Frågan, av Pellefant

Hejsan! :) Har denna, som hör att det krävs ett @. Går det att skriva om den så att det även krävs något framför @:et, samt något efter och en punkt samt något efter punkten, så att man måste skriva som en riktig email. såhär alltså: x@x.x function formvalidation(thisform){ if (validateName(thisform.nam,"Enter your name please!")==false){ thisform.nam.focus(); return false; } if (

Läs frågan i sin helhet →
Medlem sedan sep. 20011 914 inlägg
#21

Kan ju testa denna annars:

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

Släpper glatt i hågen igenom ex:

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

:)

Medlem sedan sep. 20011 914 inlägg
#23

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

Medlem sedan dec. 20025 483 inlägg
#24

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

:)

Medlem 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])+)*))$
Medlem sedan maj 20023 372 inlägg
#26

Intressant detta :)

Medlem 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? :)

Medlem 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.

:)

Medlem sedan maj 20023 372 inlägg
#29

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

Medlem 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?

Medlem 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>
Medlem sedan dec. 2003487 inlägg
#32

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

Medlem 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

Medlem 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;}
Medlem 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;}

:)

Medlem sedan dec. 2003487 inlägg
#36

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

Medlem 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;
}
Medlem 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;}
     }
Medlem sedan juni 20004 308 inlägg
#39

else if inte elseif :)

Medlem 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

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