alexivchenko Опубликовано 16 октября, 2019 Жалоба Поделиться Опубликовано 16 октября, 2019 Здравствуйте! На странице с формой есть поле input name="url" для указания веб-сайта Ссылки указываются без httpКак при нажатии кнопки "отправить" произвести проверку, если в поле name="url" введена ссылка на веб-сайт без http, тогда добавить и сохранить. Пробовал что-то придумать по типу масок для телефона и даты, но ничего не вышло Цитата Ссылка на сообщение Поделиться на другие сайты
alexivchenko Опубликовано 16 октября, 2019 Автор Жалоба Поделиться Опубликовано 16 октября, 2019 Нашел вот такой код $('input[name=url]').keyup(function () { if ( ($(this).val().length >=5) && ($(this).val().substr(0, 5) != 'http:') && ($(this).val().substr(0, 5) != 'https') ) { $(this).val('http://' + $(this).val()); } }); Все конечно хорошо и работает Что если в это поле вставляют ссылку типа mailto: и tel:? Дописал так $('input[name=url]').keyup(function () { if ( ($(this).val().length >=5) && ($(this).val().substr(0, 5) != 'http:') && ($(this).val().substr(0, 5) != 'https') && ($(this).val().substr(0, 7) != 'mailto:') && ($(this).val().substr(0, 4) != 'tel:') ) { $(this).val('http://' + $(this).val()); } }); Тоже работает Теперь вопрос другой, так как эта форма заполняется поставщиком или представителем, то возможно будут и глубокие ссылки типа tg://, whatsapp://, skype:// viber:// В админке я создал поле с разрешенными префиксами и сохраняю их в json типа ["mailto","tel"]Далее проверка на php function validate_url_format($url) { $parsed_url = parse_url($url); if(!$parsed_url) { return false; } if(!isset($parsed_url['scheme'])) { return false; } if(!isset($parsed_url['host']) && !isset($parsed_url['path'])) { return false; } $prefix = $parsed_url['scheme']; if(!in_array($prefix, get_links_allowed_prefixes())) { return false; } return true; } function get_links_allowed_prefixes() { global $settings; return array_merge(['http', 'https'], $settings->links_allowed_prefixes); } Как мне лучше сделать, думаю, что не на JS, а на php Проверку, если scheme пустая и не prefix добавить http:// Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 16 октября, 2019 Жалоба Поделиться Опубликовано 16 октября, 2019 https://www.php.net/manual/ru/filter.filters.validate.php Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.