regulárny výraz + JavaScript

Programovacie jazyky, rady, poradňa...
atlox
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 230
Registrovaný: 15 aug 2006, 0:31
Bydlisko: Poprad
Kontaktovať používateľa:

regulárny výraz + JavaScript

Príspevok od používateľa atlox »

Zdravím všetkých! :)

Prosím Vás, čo mám v tomto kóde zle?

Kód: Vybrať všetko

<html>
<head>
<style type="text/css">
#i_1 {
	display: block;
	font-weight: bold;
	text-align: center;
}
</style>
<script language="javascript" type="text/javascript">
function posta() {
	text = document.reg.email.value;
	regul=/^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$/;
	
	if (!regul.test(text)) {
		document.getElementById('i_1').style.color = "#FF3300";
		document.getElementById('i_1').innerHTML = "E-mailová adresa je chybná!";
		check=false;
	} else {
		document.getElementById('i_1').style.color = "#66CC33";
		document.getElementById('i_1').innerHTML = "E-mailová adresa je v poriadku!";
		check=true;
	}
}
</script>
</head>
<body onLoad="posta()">
<center>
<span id="i_1"></span>

<form name="reg">
<label for="mail">E-mail:</label>
<input type="text" name="email" id="email" class="text_pole" autocomplete="off" value="@" onChange="posta()" onkeydown="posta()" onclick="posta()" onblur="posta()" onfocus="posta()" onkeyup="posta()" />
</form>
</center>
</body>
</html>
A teraz čo to má robiť? Má to jednoducho za pomoci javascriptu vypísať či je mailová adresa správna alebo nie. Správnosť sa určuje regulárnym výrazom. Nechce mi to fičať :cry:
PLS poraďte... :roll:
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

Kód: Vybrať všetko

regul=/^[a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$/;
zaggi
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 314
Registrovaný: 04 feb 2007, 19:32

Príspevok od používateľa zaggi »

google > javascript check valid mail
najde ti toho viac ako vela, napr.

Kód: Vybrať všetko

function isValidEmail(strEmail){
  validRegExp = /^[^@]+@[^@]+.[a-z]{2,}$/i;
  strEmail = document.forms[0].email.value;

   // search email text for regular exp matches
    if (strEmail.search(validRegExp) == -1) 
   {
      alert('A valid e-mail address is required.\nPlease amend and retry');
      return false;
    } 
    return true; 
}
atlox
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 230
Registrovaný: 15 aug 2006, 0:31
Bydlisko: Poprad
Kontaktovať používateľa:

Príspevok od používateľa atlox »

Vďaka chalani :)
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

zaggi vieš, niekedy vytvoriť vlastne riešenie je lepšie ako vyhladať hotové lebo sa aj niečo naučíš ;)
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Konkrétne pri validácii emailovej adresy je asi lepšie hľadať na internete (ale nájsť dobrú validáciu emailovej adresy je asi zložitejšie ako urobiť si vlastnú). Problém je totiž o niečo zložitejší ako sa zdá (napr. správna emailová adresa je aj [email protected]). :)
zaggi
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 314
Registrovaný: 04 feb 2007, 19:32

Príspevok od používateľa zaggi »

audiotrack napísal:zaggi vieš, niekedy vytvoriť vlastne riešenie je lepšie ako vyhladať hotové lebo sa aj niečo naučíš ;)
ja toho tvorim viac ako dost, ale ak chces pracovat efektivne a nie sa len hrat tak nikdy nekoduj co uz je nakodene ... zoberem script, ak sa mi na nom nieco nepaci upravim a urcite je to rychlejsie ako by som ho pisal cely ... plus, regulerne vyrazy k smrti neznasam
vivaSlovakia
Guru wannabe
Guru wannabe
Príspevky: 2119
Registrovaný: 29 júl 2006, 10:30

Príspevok od používateľa vivaSlovakia »

alternativa bez pouzitia regularnych vyrazov (php5)

Kód: Vybrať všetko

<?php
function email($email)
{
if (filter_var($email, FILTER_VALIDATE_EMAIL))
{
return true;
}
else
{
return false;
}
}
?>
Napísať odpoveď