Проверка сервера имен - PullRequest
       1

Проверка сервера имен

0 голосов
/ 09 февраля 2012

Код, приведенный ниже, работает, за исключением того, что yes.com отображается как valid, в то время как мне нужно принимать только этот формат ns1.yes.com, www.yes.com, принимая цифры и без черты или точки на передней или в конце сервера имен,Помогите мне, пожалуйста.

 <html>
 <head>
<title>Validate name server</title>
<script type="text/javascript">

    function validSubdomain() {
        var re = /^[a-zA-Z0-9][a-zA-Z0-9.-]+[a-zA-Z0-9]$/;
        var val = document.getElementById("nameserver").value;

    if(val == ''){
         alert("Please enter the name server"); 
         return false; 
    } 
        if(re.test(val)) { 
            alert("valid format");
        }

        if(!re.test(val)) {
            alert("invalid format");
        }

    }
    </script>        
     </head>

     <body>
     Insert nameserver :  <input name="txt_domain" id="nameserver" type="text" size="30" /> <input name="btn_validate" type="button" value="Validate" onclick="validSubdomain()" />
     </body>
    </html>

Демонстрационная страница: http://khamis.cheapantivirus.me/

Ответы [ 3 ]

1 голос
/ 10 февраля 2012

Разделите значение по точкам и сосчитайте получившиеся части.

var parts = val.split('.');
if (parts.length < 3) { alert('invalid') }
0 голосов
/ 30 августа 2013

Судя по вашему вопросу, вы забыли о возможности двойной (или более) черточки. Теперь я знаю, что ccTLD принимает несколько тире подряд, но обычно это «запрещено».

0 голосов
/ 10 февраля 2012

Вы должны быть немного более точным в шаблоне, который вам нужен.Я предполагаю, что вы хотите 3 буквенно-цифровых "слова", разделенных двумя точками.

Это регулярное выражение будет соответствовать тому, что вы хотите:

var re = /[a-zA-Z0-9]+(\.[a-zA-Z0-9]+){2}/

Если вы хотите соответствовать хотя бы 3 части в хосте, например, "foo.bar.example.com" или "www.example.co.uk", просто измените квантификатор в конце, чтобы он был открытым:

var re = /[a-zA-Z0-9]+(\.[a-zA-Z0-9]+){2,}/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...