Слэш в регулярных выражениях, PHP

287
19 января 2017, 06:29

Почему это регулярное выражение пропускает site.com без слэша в конце?

if(!preg_match('|^(http(s)?://)?(www.)?site.com/*|i', $_POST['site'])) {

Мне нужно провести проверку на наличие слеша после доменного имени

Answer 1

Поставьте вместо * - +

'^(http(s)?://)?(www.)?site.com/+'

Answer 2

Правильнее будет |^(http(s)?://)?(www\.)?site\.com/$|i, что означает — после обязательного / ни чего идти не должно.

Так же не забывайте ставить обратный слеш \ перед точками, иначе http://site-com тоже пройдёт проверку.

READ ALSO
Сколько раз можно подключать session_start()?

Сколько раз можно подключать session_start()?

Здравствуйте! я новичок в php1 раз я вызываю сессию session_start() при подключении к бд, 2 раз session_start() при регистрации и тд, я читал, что сессию нужно...

267
laravel отношения

laravel отношения

ЗдравствуйтеУ меня есть модели и таблицы Complex, Floors со следующими структурами:

293
Как правильно в mongoose искать кириллицу?

Как правильно в mongoose искать кириллицу?

как настроить поиск по киррилическому значению?

345