webForumDet fria alternativet

Email validering ?

JavaScriptur Javascript

39 svar · 903 visningar · startad av Pellefant

Medlem sedan maj 20023 372 inlägg
Frågan#1

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 (validateEmail(thisform.email, "You have to write a valid E-mail address!")==false){
 thisform.email.focus();
 return false;
}
return true;
}
</script>
Medlem sedan juni 20014 421 inlägg
Medlem sedan maj 20023 372 inlägg
#3

Tack för tipset. jojoxx script verkar väldigt bra.

Medlem sedan maj 20023 372 inlägg
#4

Försöker få jojoxx script att fungera till det jag redan har, dvs så att det kollar att "nam"(textfälten heter nam och email) textfältet inte är tomt heller. Men det går inget vidare, nu reagerar inte scriptet alls om någon av rutorna är tomma. :(

<script>
function validateName(entered, alertbox){
if (entered.value==null || entered.value=="" || entered.value=='\n' ){
 alert(alertbox);
 return false;}
return true;
} 

function formvalidation(thisform){
if (validateName(thisform.nam,"Enter your name please!")==false){
	thisform.nam.focus();
	return false;
}

/* Detta script finns att hämta på [url]http://www.jojoxx.net[/url] och
   får användas fritt så länge som dessa rader står kvar. */

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 validateForm() {
if (!document.f.email.value.isValidEmail()) {
	alert("You have to write a valid E-mail address!");
	return false;
}else{
	return true;
	}
}
</script>

och här anropas javasscriptet:
<FORM METHOD="POST" ACTION="dlpage2.php" onsubmit="return formvalidation(this)">
Medlem sedan juni 20004 308 inlägg
#5
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(obj) {
	if (!obj.email.value.isValidEmail()) {
		alert("You have to write a valid E-mail address!");
		return false;
	} else if (!obj.nam.value){
		alert("Enter your name please!")
		return false;
	}else{
		return true;
	}
}
Medlem sedan maj 20023 372 inlägg
#6

Tack!!!

Inte varje dag man får hjälp av den som gjort scriptet. :)

Medlem sedan maj 20023 372 inlägg
#7

Hej! :)

Har hittat ett fel i scriptet, för addresser som denna:

test@test-test.se
eller tex
aaa@bbb-cccc.se

(dvs med ett "-" som ovan så accepterars det inte, fast det är en korrekt email address.

Vet någon möjligtvis hur man kan lösa det?

Medlem sedan dec. 20025 483 inlägg
#8
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})$/)
}

:)

Medlem sedan juni 20004 308 inlägg
#9

Ja just det. Tanken var att det skulle innefatta även "-" men jag escape'ade inte ordentligt. Men då fixar vi väl så man kan använda te-st@test-test.se också :)

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})$/)
}
Medlem sedan maj 20023 372 inlägg
#10

Tackar och bockar :)

P.s Finns det några slags mail som blockeras nu, som rent teoretiskt är ok?

Medlem sedan dec. 20025 483 inlägg
#11

E-postadresser är väldigt svåra att validera eftersom det inte verkar finnas någon standard ( om någon vet var en sådan finns, får denne gärna upplysa mig ) som säger att "så här får en e-postadress se ut och så här får den inte se ut".

För att svara på frågan så kan även e-postadresser innehålla apostrofer, samt vara baserade på ip-adresser ( har jag för mig iallafall ).

:)

Medlem sedan maj 20023 372 inlägg
#12

Har man en email address med apostrof så tycker jag att man får skylla sig själv. §e

Medlem sedan dec. 20025 483 inlägg
#13

Tungt för personen ifråga då om denne faktiskt råkar ha ett namn innehållandes apostrof(er) ;)

john.o'brien@...

:)

Medlem sedan juni 20004 308 inlägg
#14

RFC 822 tar bara upp a-z_.-

Har lite brådis, återkommer senare :)

Medlem sedan dec. 20025 483 inlägg
#15

Dessa dokument var inte de mest lättolkade ;)

Dock; efter att gått igenom RFC2822 uppfattar jag det som att följande tecken ( utöver a-z och 0-9 ) är tillåtna:

"!"    "#"
"&"    "%"
"*"    " ' "
"-"    "+"
"="    "/"
"^"    "?"
"`"    "_"
"|"    "{"
"~"    "}"
"$"    "."

Men som sagt, dokumenten är enligt mig ganska svårtolkade så jag förbehåller mig rätten för eventuella missar ;)

:)

Medlem sedan juni 20004 308 inlägg
#16

Jag skulle tolka det likadant, även om det var efter en del funderande, så låter det mest logiskt. Däremot tror jag det är långt ifrån alla mailservrar som verkligen klarar av att hantera det.

Medlem sedan jan. 2002473 inlägg
#17

tänkte man kunde likaväl fortsätta här...
har testat Jojoxx kod för själva email valideringen, funkar kanon men inte till 100%.

själv så tar den inte min mailadress roady_@rocketmail.com
klagar på _

någon fena som kan svänga runt rabballderna:

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})$/)
Medlem sedan juni 20004 308 inlägg
#18

Det är by-design, men det (din email) är ju trots allt inte "fel". ("_._@telia.com" kändes bara inte rätt :) )

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})$/)
}
Medlem sedan maj 20023 372 inlägg
#19

Vad betyder "by-design" ? :)

Medlem sedan juni 20004 308 inlägg
#20

Att en funktions beteende snarare är avsiktligt än en bug.

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