Email validering ?
39 svar · 903 visningar · startad av Pellefant · sida 2 av 2
Nä, den strängen släpper den inte igenom. :)
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])+)*))$
Intressant detta :)
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? :)
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.
:)
Bara "_" funkar, så är jag glad :)
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?
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>
då stannar den röda bilden kvar även när man har en korrekt epost adress
Jag glömde att sätta in formvalidation(this.value) :)
Tack för hjälpen dectgap, nu funkar det
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;}
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;}
:)
Nä det funkade inte.
Även när jag skriver i en giltig epost adress kommer alert rutan upp :(
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;
}
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;}
}
else if inte elseif :)
ibland är man ju blind :)
antar att jag onte borde jobba med asp medans jag lär min JS :L