Regexp :: Common qw / URI / не разрешающий HTTPS - PullRequest
0 голосов
/ 22 мая 2019

Мне была дана ошибка, когда HTTPS не может быть введен в одну из наших форм.После поиска в форме я заметил, что мы используем Regexp :: Common qw / URI /

Я пробовал

if ($params{URL} =~ /$RE{URI}{HTTP}{-keep}{-scheme}/)
{
$form{URL} = $1;
}
else
{
$error .= '<li>Website Address is invalid. The URL must be in this form: <b>http://example.com</b></li>';
}

, и это позволяет http и https, но сохраняет только: // www.google.com в базу данных

if ($params{URL} =~ /$RE{URI}{HTTP}{-keep}/)
{
$form{URL} = $1;
}
else
{
$error .= '<li>Website Address is invalid. The URL must be in this form: <b>http://example.com</b></li>';
}

разрешает только http, но сохраняет весь URL в базу данных

if ($params{URL} =~ /$RE{URI}{HTTP}{-scheme}/)
{
$form{URL} = $1;
}
else
{
$error .= '<li>Website Address is invalid. The URL must be in this form: <b>http://example.com</b></li>';
}

разрешает http и https, но НИЧЕГО не сохраняет в базу данных

Мне бы хотелось, чтобы https и http были действительны, и чтобы полный URL-адрес сохранялся в базе данных.

1 Ответ

0 голосов
/ 23 мая 2019

Флаг -scheme для Regexp :: Common :: URI :: http принимает аргумент, который является регулярным выражением для соответствия разрешенным схемам.По умолчанию это просто совпадение http, и пропущенный аргумент, похоже, означает, что схема вообще не включена в совпадение.Таким образом, для соответствия http и https вы можете передать ему регулярное выражение https?:

m/$RE{URI}{HTTP}{-scheme => qr<https?>}{-keep}/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...