Есть код
$url = "youtube.com/watch?v=ТУТ КАКОЙ ТО ТЕКСТ";
С помощью рег.выражения нужно проверить задана ли такая ссылка, вместо "ТУТ КАКОЙ ТО ТЕКСТ" должно быть что угодно, что допускается в ссылке ($url), любой текст или цифры
$url2 = "youtube.com/watch?v=";
preg_match("#^(https?://)?youtube.com/watch\?v=.*$#", $url2);
Данный код почему то выдает true даже на $url2, хотя так не должно быть
Данный код почему то выдает true даже на $url2, хотя так не должно быть
Это происходит из-за минимальности квантификатора *, который делает дальнейшее совпадение в подстроке не обязательным, даже если совпадение есть. Замените * на +, и шаблон будет учитывать подстроку после v=:
$str = 'youtube.com/watch?v=';
$patt = '~^(?:https?://)?youtube.com/watch\?v=.+$~';
var_dump( (bool) preg_match($patt, $str) );
Результат:
boolean false
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости