Проверьте URL с помощью JavaScript и PHP - PullRequest
0 голосов
/ 16 июня 2009

Я просто хочу проверить URL для обоих следующих форматов http://www.XYZ.com а также www.XYZ.com я хочу этот сценарий проверки в Javascript и PHP также. Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 16 июня 2009

Для этого лучше всего использовать регулярное выражение. Примерно так:

^((ht|f)tp(s?)\:\/\/|~/|/)?([\w]+:\w+@)?([a-zA-Z]{1}([\w\-]+\.)+([\w]{2,5}))(:[\d]{1,5})?((/?\w+/)+|/?)(\w+\.[\w]{3,4})?((\?\w+=\w+)?(&\w+=\w+)*)?

Вы можете использовать регулярные выражения в PHP, используя функцию preg_match, а в JavaScript - функцию match().

Eg (Javascript).

function validateUrl(url)
{
    var pattern = '^((ht|f)tp(s?)\:\/\/|~/|/)?([\w]+:\w+@)?([a-zA-Z]{1}([\w\-]+\.)+([\w]{2,5}))(:[\d]{1,5})?((/?\w+/)+|/?)(\w+\.[\w]{3,4})?((\?\w+=\w+)?(&\w+=\w+)*)?';

    if(url.match(pattern))
    {
        return true;
    }
    else
    {
        return false;
    }
}
3 голосов
/ 16 июня 2009

Регекс как чемпион.

Вы можете написать один самостоятельно, вот небольшой пример:

(https?://)?.+$

Немного погуглив, я нашел кое-что более конкретное в плане более строгой проверки:

^(https?://)?(([0-9a-z_!'().&=$%-]: )?[0-9a-z_!'().&=$%-]@)?(([0-9]{1,3}\.){3}[0-9]{1,3}|([0-9a-z_!'()-]\.)([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\.[a-z]{2,6})(:[0-9]{1,4})?((/?)|(/[0-9a-z_!*'().;?:@&=$,%#-])/?)$

Источник: http://www.geekzilla.co.uk/view2D3B0109-C1B2-4B4E-BFFD-E8088CBC85FD.htm (Очевидно, протестируйте скопированное и вставленное регулярное выражение, как если бы вы использовали любой скопированный код)

Если вы не знаете, как использовать регулярные выражения в PHP, это просто:

$valid = preg_match($pattern, $urlOrStringToValidate);

где $ pattern = "/(https?://)?.+/" или что-то в этом роде, между / и /

Javascript имеет метод объекта с именем match для типа String.

var urlString = "http://www.XYZ.com";
var isValidURL = urlString.match(/(https?:\/\/)?.+/);
1 голос
/ 16 июня 2009

Использование Jquery validator .

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