ugrás a tartalomhoz

Javascript domain regexp

DarkHcK · 2011. Május. 4. (Sze), 16.37
Sziasztok!

Javascript regexp -ben szeretnék segítséget kérni.
Egy domain -t szeretnék validálni úgy, hogy az aldomaineket ne fogadja el.
Jelenleg így néz ki a script:
function check(){
var domain = document.getElementById('domain').value;
var valid_domain = /^[A-Za-z0-9-]+\.[A-Za-z]{2,3}$/gi.test(domain);
alert("Domain: " + document.getElementById('domain').value + "\nValid: "+ valid_domain);
}


Ennek eredményeképp egyszer true, egyszer false. :)
Várok minden féle fajta javaslatot.

DarkHcK
 
1

Netán FF hiba?

DarkHcK · 2011. Május. 4. (Sze), 21.29
Üdv ismét mindenkinek.

Lehetséges az, hogy a FireFox javascript motorja a sza*?
Kipróbáltam Chrome -al, Safari -val és működik. FF -al a true és false váltogatja egymást.


Üdv
DarkHcK
3

Jól működik

Poetro · 2011. Május. 4. (Sze), 21.52
Nekem a következő teljesen jól működik:
<!DOCTYPE HTML>
<html lang="en-US">
<head>
  <meta charset="UTF-8">
  <title></title>
</head>
<body>
  <input type="text" id="domain" name="domain" value="" />
  <input type="submit" value="Check" id="check" />
  <script type="text/javascript">
    function check(value) {
      var valid_domain = /^[a-z0-9\-]+(?:\.co)?\.[a-z]{2,3}$/gi.test(value);
      alert("Domain: " + value + "\nValid: "+ valid_domain);
      return valid_domain;
    }
    document.getElementById('check').onclick = function () {
      check(document.getElementById('domain').value);
    }
  </script>
</body>
</html>
2

Nem jó

Poetro · 2011. Május. 4. (Sze), 21.45
Pontosan mit akarsz csinálni? Tudtad, hogy a google.co.hu is teljesen valid domain? Van erről egy lista, milyen másodszintű domain alá lehet regisztrálni .hu-n kívül Magyarországon. Ráadásul nem aldomain-ről van szó, és természetesen nem egyedi ez a világon, lásd például amazon.co.uk. És ha már az i módosítót használod, akkor teljesen felesleges definiálni a kis-nagybetűs változatot is. Valamint azt se kalkuláltad bele, hogy lehet ékezetes domain neveket is regisztrálni, ráadásul az egész világon, például קוקהקולה.co.il. A másodszintű domain nevekről is találtam neked egy viszonylag teljes listát.
4

Pontosítok :)

DarkHcK · 2011. Május. 5. (Cs), 00.22
Szia!

Jelen munkámban megvan határozva, hogy .org, .com és .hu domain -eket lehet csak regisztrálni a rendszerben. Ezért akarom azt, hogy csak valami.hu, ill. a valami.org, vagy valami.com -ra legyen valid. Saját felelősségemre kizárom az ékezetes domain -eket. :)

Az i-vel kapcsolatban igazad van. Már én is észrevettem, s azóta már így néz ki a kód:
function check(){
var domain = document.getElementById('domain').value;
var valid_domain = /^[a-z0-9-]+\.[a-z]{2,3}$/gi.test(domain);
alert("Domain: " + document.getElementById('domain').value + "\nValid: "+ valid_domain);
}


Viszont azt nem értem, hogy ha a domain mezőbe beírom pl.: szarnapomvan.hu, akkor elsőre true, utána false, utána ismét true, utána ismét false, és így tovább. Akárhányszor nyomok rá a gombra mindig váltakozva jön a true és false. Safari, Chrome teljesen jó, csak az FF csinálja ezt.

Itt viszont az a nagy probléma, hogy igencsak sokan használnak FF -ot. Ezért próbálok rájönni, hogy mi lehet a gond. Azt már megkövetelhetem a user -től, hogy ne IE6 -ot használjon, viszont azt nem, hogy ne használjon FF -ot.

Holnap csinálok egy windows -os gépet, s azon is kirpróbálom. (Ez a probléma jelenleg Mac OS -en van).
5

hu

Poetro · 2011. Május. 5. (Cs), 00.45
Amint láttad, .hu esetén is több lehetőség van, ekkor a következőképpen kellene átalakítani a függvényt:
    function check(value) {
      var valid_domain = /^[a-z0-9\-]+\.(?:(?:(?:co|2000|erotika|jogasz|sex|video|info|agrar|film|konyvelo|shop|org|bolt|forum|lakas|suli|priv|casino|games|media|szex|sport|city|hotel|news|tozsde|tm|erotica|ingatlan|reklam|utazas)\.)?hu|org|com)$/gi.test(value);
      alert("Domain: " + value + "\nValid: "+ valid_domain);
    }
Ekkor ugye, a Magyarországon megengedett másodszintű domainek, valamint .org és .com lesz elfogadva. És nálam ez konzisztens Fx alatt Windows és Linux alatt is.