Comment valider le nom de domaine en utilisant les regex?

C'est mon code pour la validation de nom de domaine.

function frmValidate() {
    var val = document.frmDomin;
    if (/^[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]\.[a-zA-Z]{2,}$/.test(val.name.value)) {
    }
    else {
        alert("Enter Valid Domain Name");
        val.name.focus();
        return false;
    }
}

et

<form name="frmDomin" action="" method="post" onsubmit="return frmValidate();">
Domain Name : <input type="text" value="" id="name" name="name"  />
</form>

Maintenant je suis entré dans http://devp1.tech.in et il alerte le message. Je veux entrer dans le sous-domaine également. Comment faire pour changer cela? Je ne devrais pas alerte.

  • Afficher l'échantillon d'entrée et de sortie attendue.
  • si vous souhaitez valider uniquement les noms de domaine, alors pourquoi êtes-vous en passant http://?
  • Y compris http:// fait un URI, pas seulement un nom de domaine/nom d'hôte.
  • Deux problèmes immédiats que je peux voir: pas de support pour .co.royaume-uni (ou sous-domaines, que votre question est sur), mais aussi deux fois de suite les traits d'union n'est valable que dans le cadre d'un IDN.
  • Vous avez besoin d'ajouter un point iniside le caractère de classe. ^[a-zA-Z0-9][a-zA-Z0-9-.]{1,61}[a-zA-Z0-9]\.[a-zA-Z]{2,}$
  • que les regex permettent à deux points dans une rangée pour les sous-domaines, comme le sous-domaine..google.es. Pouvez-vous résoudre ce problème ?

InformationsquelleAutor PNG | 2014-09-29