Улучшенное регулярное выражение для сопоставления URL-адресов
При попытке обнаружить и проанализировать URL-адреса на основе пользовательского ввода крайне важно использовать эффективное регулярное выражение. В вашем случае, хотя ваше текущее выражение фиксирует некоторые форматы URL-адресов, оно не учитывает URL-адреса, у которых отсутствует явная схема протокола, например www.google.com.
Пересмотренное регулярное выражение
Чтобы решить эту проблему и обеспечить полное сопоставление URL-адресов, рассмотрите возможность использования следующего пересмотренного стандартного выражение:
^(?=\S{1,255}$)(https?://)?[-a-zA-Z0-9@:%._\ ~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\ .~#?&//=]*)
Анатомия регулярного выражения
Это пересмотренное регулярное выражение менее ограничительно и будет успешно соответствовать URL-адресам, таким как www.google.com, а также URL-адресам с явными протоколами (например, http://www.stackoverflow.com).
Пример реализации (JavaScript)
const regex = new RegExp(/(?=\S{1,255}$)(https?://)?[-a-zA-Z0-9@:%._\ ~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\ .~#?&//=]*)g); const url = 'www.google.com'; if (url.match(regex)) { console.log("URL successfully matched."); } else { console.log("URL did not match."); }
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3