30 полезных фрагментов кода Regex для веб-разработчиков
Регулярные выражения – это мощный инструмент, который должен быть в наборе инструментов каждого разработчика. Они могут сопоставляться со строкой символов на основе очень сложных параметров, которые могут сэкономить много времени при создании динамических веб-сайтов.
Веб-разработчики сталкиваются с другими задачами, чем разработчики программного обеспечения, но многие из тех же основ кода остаются. Регулярные выражения (или регулярное выражение) действительно имеют крутую начальную кривую обучения, но они могут быть чрезвычайно мощными при правильном использовании.
Самое сложное – это изучить синтаксис и научиться писать собственный код регулярного выражения с нуля. Чтобы сэкономить время, я организовал 30 различных фрагментов кода регулярного выражения, которые вы можете включить в проекты разработки. А поскольку регулярные выражения не ограничены одним языком, вы можете применять эти фрагменты ко всему, от JavaScript до PHP или Python.
1. Надежность пароля
^ (? =. [A-Z]. *[A-Z]знак равно[!@#$&]знак равно[0-9]. *[0-9]знак равно[a-z]. *[a-z]. *[a-z]). {8} $
Проверка надежности пароля часто субъективна, поэтому нет абсолютно правильного ответа. Но я чувствую, что этот фрагмент регулярного выражения – отличная отправная точка, если вы не хотите писать свой собственный инструмент проверки надежности пароля с нуля. (Источник)
2. шестнадцатеричный цвет
# ([a-fA-F]|[0-9]) {3, 6}
Область веб-разработки повсеместна с шестнадцатеричными цветовыми кодами. Этот фрагмент регулярного выражения можно использовать для извлечения совпадений шестнадцатеричного кода из любой строки для любых целей. (Источник)
3. Подтвердите адрес электронной почты
/[A-Z0-9._%+-]+ @[A-Z0-9-]+. +.[A-Z]{2,4} / IGM
Одна из наиболее распространенных задач для разработчика – проверить, отформатирована ли строка в стиле адреса электронной почты. Существует много разных вариантов выполнения этой задачи, поэтому эта ссылка на SitePoint предлагает два отдельных фрагмента кода для проверки синтаксиса электронной почты по строке. (Источник)
4. IPv4-адрес
/ Б (? 🙁 ?: 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-адрес, используемый для идентификации конкретного компьютера, подключенного к Интернету. Это регулярное выражение будет проверять строку, чтобы увидеть, соответствует ли оно синтаксису адреса IPv4. (Источник)
5. 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 синтаксис с этим более продвинутым фрагментом регулярных выражений. Разница незначительна, хотя и жизненно необходима в процессе разработки. (Источник)
6. Разделитель тысяч
/ Д {1,3} (? = ( D {3}) + (?! Г)) / г
Традиционные системы нумерации требуют запятой, точки или какой-либо другой отметки каждую третью цифру большего числа. Этот код регулярного выражения действует на любое число и будет применять любую выбранную вами отметку к каждой третьей цифре, разделяющейся на тысячи, миллионы и т. Д. (Источник)
7. Предварительно добавьте HTTP к гиперссылке
если (! s.match (/ ^[a-zA-Z]+: / //))
{
s = ‘http: //’ + s;
}
Работаете ли вы в JavaScript, Ruby или PHP, это регулярное выражение может оказаться очень полезным. Он проверит любую строку URL-адреса, чтобы узнать, имеет ли он префикс HTTP / HTTPS, и, если нет, добавьте его соответствующим образом. (Источник)
8. Вытащить домен из URL
/ HTTPS: / / (?:[-w]+ .)? ([-w]+) Ш + (:.?.?. Ш +) / * / я
Каждый домен веб-сайта содержит исходный протокол (HTTP или HTTPS) и часто поддомен плюс дополнительный путь к странице. Вы можете использовать этот фрагмент, чтобы прорезать все это и вернуть только доменное имя без лишних наворотов. (SourceL
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
- Сортировка ключевых слов по количеству слов
^[^s]* $ точно соответствует ключевому слову из 1 слова
^[^s]* s[^s]* $ точно соответствует ключевому слову из 2 слов
^[^s]* s[^s]* соответствует ключевым словам не менее 2 слов (2 и более)
^ ([^s]* S) {2}[^s]* $ точно соответствует ключевому слову из 3 слов
^ ([^s]* S) {4}[^s]* $ соответствует 5-и ключевым словам (длиннохвостый)
Пользователям Google Analytics и Инструментов для веб-мастеров действительно понравится это регулярное выражение. Он может сортировать и упорядочивать ключевые слова по количеству слов, используемых в поиске.
Это может быть численно определенным (то есть только 5 слов) или оно может соответствовать диапазону слов (то есть 2 или более слов). Когда используется для сортировки аналитических данных, это одно из мощных выражений. (Источник)
10. Найдите правильную строку 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. (Источник)
11. Действительный номер телефона
^ +? D {1,3}?[- .]? ((:? Д {2,3}) )?[- .]? D d d[- .]? D d d d $
Коротко, сладко и точно. Этот код регулярного выражения будет проверять любой традиционный синтаксис телефонных номеров, основанный преимущественно на американском стиле телефонных номеров.
Так как это может превратиться в довольно сложный предмет, я рекомендую скимминг эта нить стека для более подробных ответов. (Источник)
12. Ведущие и конечные пробелы
^[ s]+ |[ s]+ $
Используйте этот фрагмент кода, чтобы извлечь начальные / конечные пробелы из строки. Это может не иметь большого значения, но иногда это может повлиять на вывод при извлечении из базы данных или применении к другой кодировке документа. (Источник)
13. Потяните источник изображения)
< [img][^>][src] знак равно[“‘]{0,1} ([^”‘ >]*)
Если по какой-то причине вам нужно извлечь источник изображения прямо из HTML, этот фрагмент кода является идеальным решением. Хотя он может работать без проблем на бэкэнде, разработчики внешнего интерфейса JS должны вместо этого полагаться на jQuery .attr () метод для внешнего интерфейса. (Источник)
14. Подтвердить дату в формате ДД / ММ / ГГГГ
^ (:( ?: 31 ( / | – |? ) (?: 0.?[13578]| 1[02])) 1 | (:( ?: 29 | 30) ( / | – |?. ) (?: 0?[1,3-9]| 1[0-2]) 2)) (? 🙁 ?: 1[6-9]|[2-9] D) d {2}) $ | ^ (?: 29 ( / | – |?.?? ) 0 2 3 (:( 🙁 ?: 1[6-9]|[2-9] Г)? (0 ?:[48]|[2468][048]|[13579][26]) | (:( ?: 16? |[2468][048]|[3579][26]) 00)))) $ | ^ (?: 0?[1-9]| 1 d | 2[0-8]) ( / | – |. ) (:( ?: 0?[1-9]) | (?: 1[0-2])) 4 (? 🙁 ?: 1[6-9]|[2-9] Д)? Д {2}) $
Даты хитры, потому что они могут отображаться как текст + цифры или просто как числа в разных форматах. PHP имеет фантастический функция даты но это не всегда лучший выбор при натягивании сырой нити. Вместо этого рассмотрите возможность использования этого регулярного выражения, созданного для этого конкретного синтаксиса даты. (Источник)
15. Идентификатор видео на YouTube
/ HTTP: / / (?: youtu .be / | (?:[a-z]{2,3} ) YouTube .com / часы (:.??! | # ) V =) ([w-]{11}). * / Г
YouTube годами сохраняет ту же структуру URL, потому что она просто работает. Это также самый популярный сайт для обмена видео в сети, поэтому видео на YouTube, как правило, привлекает больше всего трафика.
Если вам нужно извлечь идентификатор видео YouTube из URL-адреса, этот код регулярного выражения идеально подходит и должен отлично работать для всех вариантов структур URL-адресов YouTube. (Источник)
16. Действительный ISBN
/ b (?: ISBN (? ::? |))? ((?: 97[89])? Д {9}[dx]) B / I
Печатные книги следуют системе нумерации, известной как ISBN. Это может быть довольно сложно, если учесть различия между ISBN-10 и ISBN-13.
Однако этот невероятный фрагмент позволяет вам проверить номер ISBN и проверить, является ли он ISBN10 или 13. Весь код написан на PHP, так что это должно оказаться исключительно полезным для веб-разработчиков. (Источник)
17. Проверьте почтовый индекс
^ Д {5} (?:[-s] Д {4})? $
Создатель этого фрагмента не только бесплатно выпустил свою работу, но и нашел время, чтобы объяснить ее. Вы найдете этот фрагмент полезным, если вы используете типичный 5-значный почтовый индекс или более длинную 9-разрядную версию.
Имейте в виду, что это в первую очередь относится к американской системе почтовых индексов, поэтому для других стран это может потребовать внесения изменений. (Источник)
18. Действительное имя пользователя Twitter
/ @ ([A-Za-z0-9_]{} 1,15) /
Вот очень маленький фрагмент кода для сопоставления с именами пользователей Twitter, найденными в строке. Он проверяет синтаксис @mention, который идеально подходит для автоматического сканирования содержимого твита (или твитов). (Источник)
19. Номера кредитных карт
^ (?: 4[0-9]{12} (?:[0-9]{3}) |? 5[1-5][0-9]{14} | 6 (?: 011 | 5[0-9][0-9])[0-9]{12} | 3[47][0-9]{13} | 3 (: 0?[0-5]|[68][0-9])[0-9]{11} | (?: Две тысячи сто тридцать один | 1800 | 35 д {3}) д {11}) $
Проверка номера кредитной карты часто требует безопасной платформы, размещенной в другом месте онлайн. Но регулярные выражения могут быть использованы для минимальных требований типичного номера кредитной карты.
Более полный список кодов для отдельных карт можно нашел здесь, Это включает в себя Visa, MasterCard, Discover и многие другие. (Источник)
20. Найти атрибуты CSS
^ С *[a-zA-Z-]+ S *[:]{1} ы[a-zA-Z0-9s.#]+[;]{1}
Может быть редко запускать регулярные выражения через CSS, но это не невероятно странная ситуация.
Этот фрагмент кода может быть использован для извлечения каждого соответствующего CSS-свойства и значения из отдельных селекторов. Он может быть использован по ряду причин, например, для просмотра фрагментов CSS или для удаления дублирующих свойств. (Источник)
21. Уберите комментарии HTML
Если по какой-либо причине вам необходимо удалить все комментарии из блока HTML, используйте этот код регулярного выражения. Вместе с выражением вы найдете пример PHP, использующий preg_replace, (Источник)
22. URL профиля в Facebook
/(?:http://)?(?:www.)?facebook.com/(?:(?:w)#!/)?(?:pages/)? (?:[w-] /) * ([w-]*) /
Facebook невероятно популярен и прошел через множество различных схем URL. В ситуации, когда вы берете URL-адреса профилей от пользователей, может быть полезно проанализировать строки и убедиться, что они правильно структурированы. Этот фрагмент может сделать именно это, и он идеально подходит для всех ссылок в стиле FB. (Источник)
23. Проверьте версию Internet Explorer
^. * MSIE [5-8](?: .[0-9]+) (?!. * Trident /[5-9] +0,0). * $
Переход Microsoft на Edge не был единодушным, и многие по-прежнему полагаются на классический Internet Explorer. Разработчикам часто нужно проверять версии IE для обработки несоответствий с механизмами рендеринга.
Этот фрагмент можно использовать в JavaScript для проверки агента браузера на основе того, какая версия Internet Explorer (5-11) используется. (Источник)
24. Цена выписки
/ ( $[0-9,]+ (.[0-9]{2})?) /
Цены представлены в различных форматах, которые содержат десятичные дроби, запятые и символы валюты. Это регулярное выражение может проверять все эти разные форматы, чтобы извлечь цену из любой строки. (Источник)
25. Разбор заголовка электронной почты
/ Б[A-Z0-9._%+-]+ @ (?:[A-Z0-9-]+ .) +[A-Z]{2,6} B / I
С помощью этой единственной строки кода вы можете анализировать заголовок электронной почты, чтобы извлечь информацию из заголовка. Он может использоваться в тандеме с несколькими электронными письмами, соединенными вместе.
Если вы предпочитаете избегать регулярных выражений для этой задачи, вместо этого вы можете полагаться на библиотека разбора, (Источник)
26. Подберите определенный тип файла
/^(..(?!(htm|html|class|js)$))?[^.] $ / Я
Когда вы имеете дело с различными форматами файлов, такими как .xml, .html и .js, это может помочь проверить файлы как локально, так и загруженные пользователями. Этот фрагмент извлекает расширение файла, чтобы проверить, является ли оно действительным из ряда допустимых расширений, которые могут быть изменены при необходимости. (Источник)
27. Сопоставьте строку URL
/[-a-zA-Z0-9@:%+.~#?&//=]{2256} .[a-z]{2,4} Ъ ( /[-a-zA-Z0-9@:%+.~#?&//=])? / Г
Этот фрагмент можно использовать как для строк HTTPS, так и для строк HTTP, чтобы проверить, соответствует ли текст традиционному синтаксису домена TLD. Существует также простая реализация этого регулярного выражения с использованием JavaScript RegExp, (Источник)
28. Добавить rel = ”nofollow” в ссылки
(<as(?!.brel=)[^>]) (HREF = “https://www.hongkiat.com/https?://) ((((: WWW )?!?.?” .Implode ( ‘| (:. WWW ) ? ‘, $ follow_list).’))[^”]+) “((?!. * Брёл =)[^>]) (?:[^>])>
Если вы работаете с партией HTML-кода, может быть ужасно применять ручной труд в повторяющихся задачах. Регулярные выражения идеально подходят для этого случая, и они сэкономят много времени.
Этот фрагмент может извлечь все якорные ссылки из блока HTML и добавить атрибут rel = ”nofollow” к каждому элементу. Разработчик, написавший этот код, был достаточно любезен, чтобы опубликовать необработанное выражение и рабочий пример на PHP.
29. Media Query Match
/@СМИ([^{]+) {([sS]+?}) S } / г
Разбейте CSS медиа запросы на их параметры и свойства. Это может помочь вам проанализировать внешний CSS более чётким образом, сосредоточив внимание на том, как работает код. (Источник)
30. Google Синтаксис Поиска
/ ([+-]? (: |? +.? | “+.?”[^+- ]{1}[^ ]))/г
Вы можете создать свой собственный код регулярного выражения для управления поисковым текстом, используя синтаксис торговой марки Google. Знак плюс (+) обозначает дополнительные ключевые слова, а знак минус (-) обозначает слова, которые следует игнорировать и исключать из результатов.
Это довольно сложный фрагмент, но при правильном использовании он может стать основой для построения собственного алгоритма поиска. (Источник)
Заворачивать
Путь к овладению регулярным выражением длинный, но полезный, если вы будете придерживаться его. Помимо обычных инструментов регулярных выражений, лучший способ учиться – это повторение. Попробуйте создать веб-приложения, использующие эти фрагменты регулярных выражений, чтобы узнать, как они работают в реально работающем веб-приложении. И если у вас есть другие фрагменты, чтобы предложить, вы можете опубликовать их в области комментариев ниже.
Теперь прочитайте:
50 полезных фрагментов CSS, которые должен иметь каждый дизайнер
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)