проверка имени субдомена в javascript / jquery - PullRequest
5 голосов
/ 05 июля 2010

У меня есть форма регистрации, в которой пользователи могут ввести свой поддомен при создании учетной записи.

http://_________.ourapp.com

Я хочу, чтобы они могли вводить действительные символы только в части ____________________ выше.Я использую текстовое поле для этого.

Есть ли функция или какой-то шаблон, который существует для таких ситуаций?Пробелы должны быть отфильтрованы, я думаю, много или все специальные символы (кроме цифр, тире и букв) тоже?

Ответы [ 5 ]

4 голосов
/ 05 июля 2010

Вы можете использовать регулярные выражения для достижения того, что вам нужно.

Попробуйте что-то вроде этого:

0 голосов
/ 26 декабря 2018

Для проверки Jquery выполните следующие действия

Метод первого добавления правила Jquery

$.validator.addMethod("subdomainV", function(value, element) { 
      var regex = new RegExp("^[a-zA-Z]+[a-zA-Z0-9\\-]*$");
      return regex.test(value);
    }, "Please provide proper subdomain name");

Примените этот добавленный метод к обязательному полю

subdomain : {
                required: true,
                subdomainV: true /*** New Rule Applied */
          }
0 голосов
/ 05 июля 2010

Итак, ваш вопрос: " Каким правилам соответствует действительное доменное имя в Интернете? "

Ответ на этот вопрос:

  • может содержать только:
    • 26 букв английского алфавита (без учета регистра)
    • цифры (0-9)
    • дефис / знак минус (-)
  • оно должно начинаться и заканчиваться буквой или цифрой, а не дефисом;
  • метки должны быть длиной от 1 до 63 символов;
  • полное имя хоста не может превышать 255 символов

Доменное имя состоит из нескольких меток, каждая из которых разделена точкой. Прямой поддомен ourapp.com будет ben.ourapp.com, где ben, ourapp и com - каждая метка. Но вы также можете, при желании, разрешить пользователям включать точки в свой поддомен, например ::

ben.franklin.ourapp.com
i.have.a.clever.vho.st

В этих случаях вы можете разрешить использование дочернего домена пользователя длиной более 63 символов (63 * число периодов в дочернем домене с максимальным размером 244 (.ourapp.com составляет 11 символов).

См. эту статью в Википедии для получения дополнительной информации о допустимых именах хостов.

Редактировать: Если вы хотите поддерживать интернационализированные доменные имена , все становится немного сложнее, но все же управляемым.

0 голосов
/ 05 июля 2010

Javascript 1.2 и более поздние версии поддерживают регулярные выражения.Это практически каждый браузер в наши дни.

Используя ваш пример «цифр, тире и букв» в качестве допустимых поддоменов, вы можете сделать что-то похожее на следующее, вероятно, запустится, когда нажата кнопка «отправить» в форме(и если совпадение не удастся, отмените отправку).

entry.Match(/^[a-zA-Z0-9\-]+$/)

Без более конкретной информации я действительно не смогу дать вам полный пример, но это должно привести вас туда, куда вам нужно идти.Конечно, имейте в виду, что проверка подлинности JavaScript не является полной для надежного веб-сайта.Вам необходимо повторно проверить это на стороне сервера, чтобы защитить от людей, у которых отключен JavaScript (или, в худшем случае, от злоумышленников).

0 голосов
/ 05 июля 2010

Попробуйте if(subdomainName.match(/^[a-z0-9][a-z0-9\-]*[a-z0-9]$/))) {...what to do if valid here...} else {...invalid handling here...} - Я считаю, что должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...