Проверка / дезинфекция формы Javascript Нужно ли здесь регулярное выражение? - PullRequest
1 голос
/ 16 апреля 2010

У меня есть одна форма ввода для проверки доменов. Иногда люди набирают www. перед доменом или .com после доменного имени. Сервис, который я использую для проверки доступности, автоматически проверяет все домены верхнего уровня, поэтому, когда люди добавляют .com в конце, он становится избыточным. Например, отправленной строкой является domainname.com.com, которая явно недействительна.

Я понимаю, что вы можете сделать это на стороне сервера, но из-за некоторых довольно странных обстоятельств я должен использовать для этого javascript. Так является ли регулярное выражение решением здесь? Если да, то есть ли какой-нибудь генератор регулярных выражений, который я могу использовать для этого, или кто-то может направить меня в правильном направлении с помощью фрагмента кода?

Спасибо за помощь, спасибо!

Ответы [ 2 ]

1 голос
/ 16 апреля 2010

Ну, регулярное выражение является одним из возможных решений. Вы можете удалить обычные TLD следующим образом:

input = input.replace(
    /\.(?:com|net|org|biz|edu|in(?:t|fo)|gov|mil|mobi|museum|[a-z][a-z])$/i, "");

Это то, что вы ищете?

1 голос
/ 16 апреля 2010

Эта страница содержит пример регулярных выражений.

function isUrl(s) {
    var regexp = /^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?$/
    return regexp.test(s);
}

Вот еще один пример .

function isUrl(s) {
    var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
    return regexp.test(s);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...