Домашняя » кодирование » 30 полезных фрагментов кода Regex для веб-разработчиков

    30 полезных фрагментов кода Regex для веб-разработчиков

    Регулярные выражения - это мощный инструмент, который должен быть в инструментальном поясе каждого разработчика. Они могут сопоставляться со строкой символов на основе очень сложных параметров, которые могут сэкономить много времени при создании динамических веб-сайтов..

    Веб-разработчики сталкиваются с другими задачами, чем разработчики программного обеспечения, но многие из тех же основ кода остаются. Регулярные выражения (или регулярное выражение) есть крутая начальная кривая обучения, но они могут быть чрезвычайно мощный при правильном использовании.

    Самое сложное - это изучить синтаксис и научиться писать собственный код регулярного выражения с нуля. Чтобы сэкономить время, я организовал 30 различных фрагментов кода регулярного выражения, которые можно включить в проекты разработки. И так как регулярное выражение не ограничено одним языком, вы можете применять эти фрагменты ко всему JavaScript в PHP или же питон.

    1. Надежность пароля

    ^ (? =. * [AZ]. * [AZ]) (? =. * [! @ # $ & *]) (? =. * [0-9]. * [0-9]) (? = . * [AZ]. * [AZ]. * [AZ]). 8 $

    Проверка надежности пароля часто субъективна, поэтому нет абсолютно правильного ответа. Но я чувствую, что этот фрагмент регулярного выражения - отличная отправная точка, если вы не хотите писать свой собственный инструмент проверки надежности пароля с нуля. (Источник)

    2. шестнадцатеричный цвет

    \ # ([a-fA-F] | [0-9]) 3, 6

    Область веб-разработки повсеместна с шестнадцатеричными цветовыми кодами. Этот фрагмент регулярного выражения можно использовать для извлечения совпадений шестнадцатеричного кода из любой строки для любых целей. (Источник)

    3. Подтвердите адрес электронной почты

    /[A-Z0-9._%+-]+@[A-Z0-9-]+.+.[A-Z]2,4/igm

    Одна из наиболее распространенных задач для разработчика - проверить, отформатирована ли строка в стиле адреса электронной почты. Существует много разных вариантов выполнения этой задачи, поэтому эта ссылка на SitePoint предлагает два отдельных фрагмента кода для проверки синтаксиса электронной почты по отношению к строке. (Источник)

    4. 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]) \ б /

    Аналогично адресу электронной почты является типичный 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 -9а-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 к гиперссылке

    if (! s.match (/ ^ [a-zA-Z] +: \ / \ //)) s = 'http: //' + s; 

    Работаете ли вы в JavaScript, Ruby или PHP, это регулярное выражение может оказаться очень полезным. Он проверит любую строку URL-адреса, чтобы узнать, имеет ли он префикс HTTP / HTTPS, и, если нет, добавьте его соответствующим образом. (Источник)

    8. Вытащить домен из URL

    /https?:\/\/(?:[-\w]+\.)?([-\w]+)\.\w+(?:\.\w+)?\/?.*/i

    Каждый домен веб-сайта содержит исходный протокол (HTTP или HTTPS) и часто субдомен плюс дополнительный путь к странице. Вы можете использовать этот фрагмент, чтобы прорезать все это и вернуть только доменное имя без лишних наворотов. (SourceL

    9. Сортировка ключевых слов по количеству слов

    ^ [^ \ 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? [-.]? \ (? (?: \ d 2,3) \)? [-.]? \ d \ d \ d [-.]? \ d \ d \ d \ d $

    Коротко, сладко и точно. Этот код регулярного выражения будет проверять любой традиционный синтаксис телефонных номеров, основанный главным образом на американском стиле телефонных номеров.

    Поскольку это может превратиться в довольно сложную тему, я рекомендую просмотреть эту тему стека для более подробных ответов. (Источник)

    12. Ведущие и конечные пробелы

    ^ [\ s] + | [\ s] + $

    Используйте этот фрагмент кода, чтобы извлечь начальные / конечные пробелы из строки. Это может не иметь большого значения, но иногда это может повлиять на вывод при извлечении из базы данных или применении к другой кодировке документа. (Источник)

    13. Потяните источник изображения)

    \< *[img][^\>] * [src] * = * [\ "\ '] 0,1 ([^ \" \' \>] *)

    Если по какой-то причине вам нужно извлечь источник изображения прямо из HTML, этот фрагмент кода является идеальным решением. Несмотря на то, что он может работать без проблем на сервере, разработчики внешнего интерфейса JS должны вместо этого полагаться на метод .Qtery () jQuery для внешнего интерфейса. (Источник)

    14. Подтвердить дату в формате ДД / ММ / ГГГГ

    ^ (:( ?: 31 (\ / | - |?.? \) (?: 0 [13578] | 1 [02])) | (? :( ?: 29 | 30) \ 1 (\ / | - | \) (?: 0 [1,3-9] |.? 1 [0-2]) \ 2)) (:( ?: 1 [6-9] |? [2-9] \ д)? \ д 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] \ d) \ d 2) $

    Даты хитрые, потому что они могут отображаться как текст + цифры или просто как числа в разных форматах. В PHP есть фантастическая функция даты, но это не всегда лучший выбор при извлечении необработанной строки. Вместо этого рассмотрите возможность использования этого регулярного выражения, созданного для этого конкретного синтаксиса даты. (Источник)

    15. Идентификатор видео на YouTube

    /http:\/\/(?:youtu\.be\/|(?:[az]2,3\.)?youtube\.com\/watch(?:\?|#\!)v =) ([\ ш -]. 11) * / г

    YouTube годами сохраняет ту же структуру URL, потому что она просто работает. Это также самый популярный сайт для обмена видео в сети, поэтому видео с YouTube, как правило, привлекает наибольшее количество посетителей..

    Если вам нужно извлечь идентификатор видео YouTube из URL-адреса, этот код регулярного выражения идеально подходит и должен отлично работать для всех вариантов структур URL-адресов YouTube. (Источник)

    16. Действительный ISBN

    / \ b (?: ISBN (? ::? |))? ((?: 97 [89])? \ d 9 [\ dx]) \ b / i

    Печатные книги следуют системе нумерации, известной как ISBN. Это может быть довольно сложно, если учесть различия между ISBN-10 и ISBN-13.

    Однако этот невероятный фрагмент позволяет вам проверить номер ISBN и проверить, является ли он ISBN10 или 13. Весь код написан на PHP, так что это должно оказаться исключительно полезным для веб-разработчиков. (Источник)

    17. Проверьте почтовый индекс

    ^ \ Д 5 (?: [- \ с] \ d 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 | (?: 2131 | 1800 | 35 \ д 3) \ д 11) $

    Проверка номера кредитной карты часто требует безопасной платформы, размещенной в другом месте онлайн. Но регулярные выражения могут быть использованы для минимальных требований типичного номера кредитной карты.

    Более полный список кодов для отдельных карт можно найти здесь. Это включает в себя Visa, MasterCard, Discover и многие другие. (Источник)

    20. Найти атрибуты CSS

    ^ \ S * [A-Za-Z \ -] + \ S * [:] 1 \ S [. A-Za-z0-9 \ S #] + [;] 1

    Может быть редко запускать регулярные выражения через CSS, но это не невероятно странная ситуация.

    Этот фрагмент кода можно использовать для извлечения каждого соответствующего CSS-свойства и значения из отдельных селекторов. Он может быть использован по ряду причин, например, для просмотра фрагментов CSS или для удаления дублирующих свойств. (Источник)

    21. Уберите комментарии HTML

    Если по какой-либо причине вам необходимо удалить все комментарии из блока HTML, используйте этот код регулярного выражения. Вместе с выражением вы найдете пример PHP с использованием preg_replace. (Источник)

    22. URL профиля Facebook

    /(?:http:\/\/)?(?:www\.)?facebook\.com\/(?:(?:\w)*#!\/)?(?:pages\/)? (?: [\ ш \ -] * \ /) * ([\ ш \ -] *) /

    Facebook невероятно популярен и прошел через множество различных схем URL. В ситуации, когда вы берете URL-адреса профилей от пользователей, может быть полезно проанализировать строки и убедиться, что они правильно структурированы. Этот фрагмент может сделать именно это, и он идеально подходит для всех ссылок в стиле FB. (Источник)

    23. Проверьте версию Internet Explorer

    ^. * MSIE [5-8] (?: \. [0-9] +)? (?!. * Trident \ / [5-9] \. 0). * $

    Переход Microsoft на Edge не был единодушным, и многие по-прежнему полагаются на классический Internet Explorer. Разработчикам часто нужно проверять версии IE для обработки несоответствий с механизмами рендеринга.

    Этот фрагмент можно использовать в JavaScript для проверки агента браузера на основе того, какая версия Internet Explorer (5-11) используется. (Источник)

    24. Цена выписки

    /(\$[0-9,]+(\.[0-9]2)?)/

    Цены представлены в различных форматах, которые содержат десятичные дроби, запятые и символы валюты. Это регулярное выражение может проверять все эти разные форматы, чтобы вытащить цену из любой строки. (Источник)

    25. Разбор заголовка электронной почты

    /\b[A-Z0-9._%+-]+@(?:[A-Z0-9-]+\.)+[A-Z]2,6\b/i

    С этой единственной строкой кода вы можете разобрать заголовок письма, чтобы вытащить “в” информация из шапки. Он может быть использован в тандеме с несколькими электронными письмами, соединенными вместе.

    Если вы предпочитаете избегать регулярных выражений для этой задачи, вместо этого вы можете использовать библиотеку синтаксического анализа. (Источник)

    26. Подберите определенный тип файла

    /^(.*\.(?!(htm|html|class|js)$))?[^.]*$/i

    Когда вы имеете дело с различными форматами файлов, такими как .xml, .html и .js, это может помочь проверить файлы как локально, так и загруженные пользователями. Этот фрагмент извлекает расширение файла, чтобы проверить, является ли оно действительным из ряда допустимых расширений, которые могут быть изменены по мере необходимости. (Источник)

    27. Сопоставьте строку URL

    /[-a-zA-Z0-9@:%_\+.~#?&//=]2,256\.[az]2,4\b(\/[-a-zA-Z0 -9 @:.?% _ \ + ~ # & // =] *) / г

    Этот фрагмент можно использовать как для строк HTTPS, так и для строк HTTP, чтобы проверить, соответствует ли текст традиционному синтаксису домена TLD. Существует также простая реализация этого регулярного выражения с использованием JavaScript RegExp. (Источник)

    28. Добавить rel =”не следует” на ссылки

    (] *) (href = "https?: //) ((?! (?: (?: www \.)? '. implode (' | (?: www \.)? ', $ follow_list).') ?!.) [^ "] +)" ((* \ брёл =) [^>] *) (?: [^>] *)>

    Если вы работаете с партией HTML-кода, может быть ужасно применять ручной труд в повторяющихся задачах. Регулярные выражения идеально подходят для этого случая, и они сэкономят много времени.

    Этот фрагмент может извлечь все якорные ссылки из блока HTML и добавить отн =”не следует” атрибут для каждого элемента. Разработчик, написавший этот код, был достаточно любезен, чтобы опубликовать сырое выражение и рабочий пример на PHP..

    29. Media Query Match

    / @ Средств массовой информации ([^ ] +) \ ([\ s \ S] +?) \ S * / г

    Разбейте CSS медиа запросы на их параметры и свойства. Это может помочь вам проанализировать внешний CSS более чётким образом, сосредоточив внимание на том, как работает код. (Источник)

    30. Google Синтаксис Поиска

    /([+-]?(?:'.+?'|".+?"|[^+\-] 1 [^] *)) / g

    Вы можете создать свой собственный код регулярного выражения для управления поисковым текстом, используя синтаксис торговой марки Google. Знак плюс (+) обозначает дополнительные ключевые слова, а знак минус (-) обозначает слова, которые следует игнорировать и исключать из результатов..

    Это довольно сложный фрагмент, но при правильном использовании он может стать основой для построения собственного алгоритма поиска. (Источник)

    Заворачивать

    Путь к овладению регулярным выражением длинный, но полезный, если вы будете придерживаться его. Помимо типичных инструментов регулярных выражений, лучший способ учиться - это повторение. Попробуйте создать веб-приложения, использующие эти фрагменты регулярных выражений, чтобы узнать, как они работают в реально работающем веб-приложении. И если у вас есть другие фрагменты, чтобы предложить, вы можете опубликовать их в области комментариев ниже.

    Теперь прочитайте:

    50 полезных фрагментов CSS, которые должен иметь каждый дизайнер