30 полезных фрагментов кода Regex для веб-разработчиков
Регулярные выражения - это мощный инструмент, который должен быть в арсенале каждого разработчика. Они могут сопоставлять строку символов на основе очень сложных параметров, что может сэкономить вам много времени при создании динамических веб-сайтов.
Веб-разработчики сталкиваются с различными задачами, отличными от задач разработчиков программного обеспечения, но многие из тех же основных принципов кодирования остаются. Регулярные выражения (или regex) имеют крутой начальный кривой обучения, но они могут быть чрезвычайно мощными, когда используются правильно.
Самая сложная часть - это изучение синтаксиса и обучение написанию собственного кода regex с нуля. Чтобы сэкономить время, я организовал 30 различных фрагментов кода regex, которые вы можете включить в проекты разработки. И поскольку regex не ограничивается одним языком, вы можете применить эти фрагменты к чему угодно, от jаvascript до PHP или Python.
-
Сила пароля
^(?=.*[A-Z].*[A-Z])(?=.*[!@#$&*])(?=.*[0-9].*[0-9])(?=.*[a-z].*[a-z].*[a-z]).{8}$
Проверка силы пароля часто является субъективной, поэтому нет абсолютно правильного ответа. Но я считаю, что этот фрагмент кода regex - отличная отправная точка, если вы не хотите писать свой собственный проверщик силы пароля с нуля. -
Шестнадцатеричный цвет
\\#([a-fA-F]|[0-9]){3, 6}
Область веб-разработки повсеместна с шестнадцатеричными цветовыми кодами. Этот фрагмент кода regex можно использовать для извлечения соответствий шестнадцатеричного кода из любой строки для любых целей. -
Проверка адреса электронной почты
/[A-Z0-9._%+-]+@[A-Z0-9-]+.+.[A-Z]{2,4}/igm
Одной из самых распространенных задач для разработчика является проверка, форматирована ли строка в стиле адреса электронной почты. Существует много различных вариантов для выполнения этой задачи, поэтому этот ссылка на SitePoint предлагает два отдельных фрагмента кода для проверки синтаксиса электронной почты против строки. -
Адрес IPv4
/\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b/
Аналогично адресу электронной почты является типичный IP-адрес, используемый для идентификации конкретного компьютера, получающего доступ к Интернету. Это регулярное выражение проверит строку на соответствие синтаксису адреса IPv4. -
Адрес IPv6
(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))
Возможно, вы захотите проверить адрес на соответствие более новому синтаксису IPv6 с помощью этого более продвинутого фрагмента кода regex. Разница незначительна, хотя и важна во время разработки. -
Разделитель тысяч
/\\d{1,3}(?=(\\d{3})+(?!\\d))/g
Традиционные системы чисел требуют запятой, точки или какого-либо другого знака каждые три цифры в большем числе. Этот код regex работает с любым числом и применяет любой знак, который вы выберете, к каждой третьей цифре, разделяя на тысячи, миллионы и т. д. -
Добавление HTTP к гиперссылке
if (!s.match(/^[a-zA-Z]+:\\/\\//)) { s = 'http://' + s; }
Будь вы работаете в jаvascript, Ruby или PHP, это регулярное выражение может оказаться очень полезным. Он проверяет любую строку URL, чтобы увидеть, есть ли у нее префикс HTTP/HTTPS, и, если нет, добавляет его соответствующим образом. -
Извлечение домена из URL
/https?:\\/\\/(?:[-\\w]+\\.)?([-\\w]+)\\.\\w+(?:\\.\\w+)?\\/?.*/i
Каждый домен веб-сайта содержит начальный протокол (HTTP или HTTPS) и часто субдомен, плюс дополнительный путь страницы. Вы можете использовать этот фрагмент для того, чтобы пройти через все это и вернуть только имя домена без лишних украшательств. -
Сортировка ключевых слов по количеству слов
^[^\\s]*$ matches exactly 1-word keyword ^[^\\s]*\\s[^\\s]*$ matches exactly 2-word keyword ^[^\\s]*\\s[^\\s]* matches keywords of at least 2 words (2 and more) ^([^\\s]*\\s){2}[^\\s]*$ matches exactly 3-word keyword ^([^\\s]*\\s){4}[^\\s]*$ matches 5-words-and-more keywords (longtail)
Пользователи Google Analytics и Webmaster Tools действительно оценят это регулярное выражение. Оно может сортировать и организовывать ключевые слова на основе количества слов, используемых в поиске. Это может быть численно конкретным (то есть только 5 слов) или оно может соответствовать диапазону слов (то есть 2 или более слов). Когда используется для сортировки данных аналитики, это одно мощное выражение. -
Найти действительную строку Base64 в PHP
\\?php[ \\t]eval\\(base64_decode\\(\\'(([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)?){1}\\'\\)\\)\\;
Если вы разработчик PHP, то в какой-то момент вам, возможно, придется просматривать код в поисках объектов Base64, закодированных в двоичном формате. Этот фрагмент может быть применен ко всему коду PHP и проверит наличие любых существующих строк Base64. -
Действительный номер телефона
^\\+?\\d{1,3}?[- .]?\\(?(?:\\d{2,3})\\)?[- .]?\\d\\d\\d[- .]?\\d\\d\\d\\d$
Короткий, сладкий и по делу. Этот код regex проверит любой традиционный синтаксис номера телефона, основанный в основном на американском стиле номеров телефонов. Поскольку это может превратиться в довольно сложную тему, я рекомендую просмотреть эту ветку Stack для более подробных ответов. -
Ведущие и замыкающие пробелы
^[ \\s]+|[ \\s]+$
Используйте этот фрагмент кода, чтобы вытащить ведущие/замыкающие пробелы из строки. Это может быть не большая проблема, но иногда это может повлиять на вывод, когда он извлекается из базы данных или применяется к другому документу кодирования. -
Извлечение а изображения
\\< *[img][^\\>]*[src] *= *[\\\"\\']{0,1}([^\\\"\\'\\>]*)
Если вы работаете с HTML-документами и хотите извлечь URL-адреса изображений, этот фрагмент кода regex будет очень полезен. Он проверяет любой тег изображения и возвращает изображения, который можно использовать для любых целей. -
Проверка даты в формате MM/DD/YYYY
^(0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01])[- /.](19|20)\\d\\d$
Проверка даты может быть сложной, особенно если вы хотите учесть все возможные варианты. Этот фрагмент кода regex проверяет дату в формате MM/DD/YYYY, который является наиболее распространенным в США. -
Проверка даты в формате DD/MM/YYYY
^(0?[1-9]|[12][0-9]|3[01])[- /.](0?[1-9]|1[012])[- /.](19|20)\\d\\d$
Если вы работаете с датами в формате DD/MM/YYYY, который является наиболее распространенным в Европе и других странах, вы можете использовать этот фрагмент кода regex. -
Проверка времени в формате HH:MM
^(0?[1-9]|1[0-2]):[0-5][0-9] (AM|PM)$
Проверка времени может быть такой же сложной, как проверка даты. Этот фрагмент кода regex проверяет время в формате HH:MM, который является наиболее распространенным в США. -
Проверка времени в формате 24-часов
^([01]?[0-9]|2[0-3]):[0-5][0-9]$
Если вы работаете с временем в 24-часовом формате, который является наиболее распространенным в Европе и других странах, вы можете использовать этот фрагмент кода regex. -
Проверка даты и времени в формате MM/DD/YYYY HH:MM
^(0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01])[- /.](19|20)\\d\\d (0?[1-9]|1[0-2]):[0-5][0-9] (AM|PM)$
Если вы работаете с датой и временем в формате MM/DD/YYYY HH:MM, который является наиболее распространенным в США, вы можете использовать этот фрагмент кода regex. -
Проверка даты и времени в формате DD/MM/YYYY 24-часов
^(0?[1-9]|[12][0-9]|3[01])[- /.](0?[1-9]|1[012])[- /.](19|20)\\d\\d ([01]?[0-9]|2[0-3]):[0-5][0-9]$
Если вы работаете с датой и временем в формате DD/MM/YYYY 24-часов, который является наиболее распространенным в Европе и других странах, вы можете использовать этот фрагмент кода regex. -
Проверка URL
^(http|https|ftp)\\://[a-zA-Z0-9\\-\\.]+\\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\\-\\._\\?\\,\\'/\\\\+&%\\$#\\=~])*$
Проверка URL может быть сложной, особенно если вы хотите учесть все возможные варианты. Этот фрагмент кода regex проверяет URL, который может быть http, https или ftp. -
Проверка имени пользователя
^[a-z0-9_-]{3,16}$
Проверка имени пользователя может быть сложной, особенно если вы хотите учесть все возможные варианты. Этот фрагмент кода regex проверяет имя пользователя, которое может содержать только строчные буквы, цифры, подчеркивания и дефисы, и должно быть длиной от 3 до 16 символов. -
Проверка пароля
^[a-z0-9_-]{6,18}$
Проверка пароля может быть сложной, особенно если вы хотите учесть все возможные варианты. Этот фрагмент кода regex проверяет пароль, который может содержать только строчные буквы, цифры, подчеркивания и дефисы, и должен быть длиной от 6 до 18 символов. -
Проверка электронной почты
^([a-z0-9_.-]+)@([0-9a-z.-]+)\\.([a-z.]{2,6})$
Проверка электронной почты может быть сложной, особенно если вы хотите учесть все возможные варианты. Этот фрагмент кода regex проверяет электронную почту, которая должна содержать только строчные буквы, цифры, подчеркивания, дефисы, точки, знак @, доменное имя и домен верхнего уровня. -
Проверка шестнадцатеричного цвета
^#?([a-f0-9]{6}|[a-f0-9]{3})$
Проверка шестнадцатеричного цвета может быть сложной, особенно если вы хотите учесть все возможные варианты. Этот фрагмент кода regex проверяет шестнадцатеричный цвет, который может содержать только строчные буквы a-f, цифры и должен быть длиной 3 или 6 символов. -
Проверка слага
^[a-z0-9-]+$
Проверка слага может быть сложной, особенно если вы хотите учесть все возможные варианты. Этот фрагмент кода regex проверяет слаг, который может содержать только строчные буквы, цифры и дефисы. -
Проверка HTML-тега
^<([a-z]+)([^<]+)*(?:>(.*)<\\/\\1>|\\s+\\/>)$
Проверка HTML-тега может быть сложной, особенно если вы хотите учесть все возможные варианты. Этот фрагмент кода regex проверяет HTML-тег, который может содержать только строчные буквы, любые символы, кроме <, и должен быть закрыт. -
Проверка IP-адреса
^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
Проверка IP-адреса может быть сложной, особенно если вы хотите учесть все возможные варианты. Этот фрагмент кода regex проверяет IP-адрес, который может содержать только цифры и точки. -
Проверка URL-адреса YouTube
^http\\:\\/\\/www\\.youtube\\.com\\/watch\\?v=([a-zA-Z0-9_-]{11})$
Проверка URL-адреса YouTube может быть сложной, особенно если вы хотите учесть все возможные варианты. Этот фрагмент кода regex проверяет URL-адрес YouTube, который должен содержать только строчные буквы, цифры, подчеркивания, дефисы и должен быть длиной 11 символов. -
Проверка URL-адреса Vimeo
^http\\:\\/\\/vimeo\\.com\\/([0-9]{1,10})$
Проверка URL-адреса Vimeo может быть сложной, особенно если вы хотите учесть все возможные варианты. Этот фрагмент кода regex проверяет URL-адрес Vimeo, который должен содержать только цифры и должен быть длиной от 1 до 10 символов. -
Проверка URL-адреса Vine
^http\\:\\/\\/vine\\.co\\/v\\/([a-zA-Z0-9]{1,13})$
Проверка URL-адреса Vine может быть сложной, особенно если вы хотите учесть все возможные варианты. Этот фрагмент кода regex проверяет URL-адрес Vine, который должен содержать только строчные буквы, цифры и должен быть длиной от 1 до 13 символов.
Надеюсь, эти примеры помогут вам в вашей работе. Если у вас есть вопросы или предложения, не стесняйтесь обращаться.
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.