Регулярное выражение для проверки URL сайта - PullRequest
11 голосов
/ 22 марта 2010

Мне нужно проверить веб-адрес, используя регулярное выражение.

, если пользовательский URL-адрес как

  1. www.test.com
  2. http://www.test.com
  3. https://www.test.com

у меня есть регулярное выражение типа

/^(http\:\/\/[a-zA-Z0-9_\-]+(?:\.[a-zA-Z0-9_\-]+)*\.[a-zA-Z]{2,4}(?:\/[a-zA-Z0-9_]+)*(?:\/[a-zA-Z0-9_]+\.[a-zA-Z]{2,4}(?:\?[a-zA-Z0-9_]+\=[a-zA-Z0-9_]+)?)?(?:\&[a-zA-Z0-9_]+\=[a-zA-Z0-9_]+)*)$/

но разрешит только второй вариант. как я могу изменить регулярное выражение так, чтобы оно также принимало 1-й и 3-й вариант

Ответы [ 6 ]

22 голосов
/ 22 марта 2010

Это довольно простое выражение для тестирования доменных имен:

@^(http\:\/\/|https\:\/\/)?([a-z0-9][a-z0-9\-]*\.)+[a-z0-9][a-z0-9\-]*$@i

Должно совпадать:

domain.com
www.domain.com
http://domain.com
https://domain.com
3 голосов
/ 22 марта 2010

Используйте следующую программу для проверки URL сайта.

Будет проверен следующий и любой действительный URL-адрес веб-сайта.

  1. www.test.com
  2. http://www.test.com
  3. https://www.test.com

    <?php
            $string_url="https://www.test.com";
            $reg_exp = "/^(http(s?):\/\/)?(www\.)+[a-zA-Z0-9\.\-\_]+(\.[a-zA-Z]{2,3})+(\/[a-zA-Z0-9\_\-\s\.\/\?\%\#\&\=]*)?$/";
            if(preg_match($reg_exp, $string_url) == TRUE){
            echo "URL is valid format";
            }
            else{
            echo "URL is invalid format";
            }
    ?>


1 голос
/ 26 мая 2016

Шаблон

(https?:\/\/)?([\w\d]+\.)?[\w\d]+\.\w+\/?.+

Это будет работать для соответствия:

www.demo.com

http://foo.co.uk/

1 голос
/ 09 марта 2016

Вы можете использовать этот шаблон также:

(http(s)?://)?([\w-]+\.)+[\w-]+(/[\w- ;,./?%&=]*)?

Это будет работать для соответствия:

http://www.google.com
https://www.google.com
www.google.com
google.com
google.in

Простой шаблон для сопоставления.

Надеюсь, это кому-нибудь поможет !!!

1 голос
/ 22 марта 2010

Вы можете сделать опцию http:// опциональной, а также опцию s in https как:

/^((?:http(?:s)?\:\/\/)?[a-zA-Z0-9_-]+(?:.[a-zA-Z0-9_-]+)*.[a-zA-Z]{2,4}(?:\/[a-zA-Z0-9_]+)*(?:\/[a-zA-Z0-9_]+.[a-zA-Z]{2,4}(?:\?[a-zA-Z0-9_]+\=[a-zA-Z0-9_]+)?)?(?:\&[a-zA-Z0-9_]+\=[a-zA-Z0-9_]+)*)$/
0 голосов
/ 01 октября 2012

Попробуйте вместо этого:

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