Вы ненавидите регулярное выражение? Тогда у меня есть для вас решение…

1656654250 vy nenavidite regulyarnoe vyrazhenie togda u menya est dlya vas

Бухари Мухаммад

hBUGXly48URB9pTpK0BWfzAGdFU4avU9FuZo
Осложнения в читабельности вчерашнего Regex

Следующий материал представляет мой последний пакет NPM, который также доступен на GitHub как репозиторий. Я написал это в надежде, что оно пригодится всем, кому это может понадобиться.

Итак… Что такое PregX?

ICoOkdsuimq4rxqdfwgcv6spCf01dvDeG2rP
PregX – крупнейшая библиотека популярных и широко используемых шаблонов регулярных выражений для JavaScript

PregXвопреки распространенному мнению, относится к: Популярное регулярное выражение (узоры), а не регулярные выражения Perl. Говоря об «общем», это библиотека, написанная на JavaScript, стремящаяся стать самой большой коллекцией популярных и распространенных регулярные выражения.

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

Почему бы не написать свои регулярные выражения?

XgBx9MtbjoGJVVDMpfC-6DjBD6jHEuBXcR9J
Источник изображения.

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

Какой смысл за СУХОЙ принцип, если мы продолжаем изобретать хлеб всякий раз, когда Том, Дик или Гарри открывают пшеницу?

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

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

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

Опять же вам может понадобиться написать свой собственный регулярное выражение. Ваш подход полностью зависит от потребностей поставленной задачи.

Когда я должен использовать PregX?

Хороший вопрос, когда нужно?

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

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

Почему бы не выбрать готовое готовое решение, абстрагирующееся к полезной функции?

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

В общем, точный принцип таков: какой бы шаблон вы ни придумали, вероятно, есть человек, который его уже написал. PregX использует это правило, накапливая такие шаблоны для большей группы не регулярное выражение ориентированных разработчиков.

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

Когда нельзя использовать PregX

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

Простота и полезность PregX

Я подумал продемонстрировать несколько практических образцов кода, чтобы продемонстрировать ошеломительность этой библиотеки. То есть если вас еще не убедили все скучные разговоры, которые я написал до сих пор. ?

Пример кредитной карты

В следующем примере показано, как сопоставить номер кредитной карты с помощью строки с getCreditCardNumber(). Можно даже указать соответствующий тип кредитной карты pf с помощью cardType свойство функции config объект. По умолчанию эта функция совпадает с номерами карт Visa. Проверьте этот образец:

OcbvsOcAojZxXioMkhtXRuVFmmjK9l3WqU9K
getCreditCardNumber()

Не потрясено? У меня в рукаве достаточно хитростей, чтобы соблазнить вас.

Пример почтового индекса

Если вышеприведенный образец кода не сделал этого, то этот сделает это.

Узор getPostalCode() функция среди многих шаблонов, которые я написал сам. Есть много решений, которые пытаются это сделать. Никакого совпадения PregX‘s стандарт.

Я использовал список почтовых индексов в Википедии как справочник и приготовил PregXсамая большая функция. С поддержка сопоставления почтовых адресов более 150 стран, эта функция — по крайней мере, для меня — остается наилучшим решением для решения этой совместной задачи. Посмотри:

s9cA9wloQL53PU3W2BTw2KiFz-2zWgSWeKs8
getPostalCode()

Поддерживаемые шаблоны

PregX поддерживает выбранный список из 35 (и увеличивается количество) различных шаблонов, все хорошо проверены на соответствие их тексту. Вот список поддерживаемых шаблонов:

EUb230uJGrGSbnKlsrTVvxkeaOXUUUNNXyLv
Поддерживаемые шаблоны

Убежден?

Это лишь два примера из многих шаблонов, содержащихся в этой библиотеке. Для документации, примеров использования и дополнительной информации о PregX, проверьте его репозиторий GitHub. А еще лучше, клонируйте его или протестируйте, просто установив через NPM:

npm install pregx --save

Я хотел бы услышать ваши отзывы об этом пакете. PregX сейчас состоит из 35 шаблонов, я надеюсь, что достигнет ~100. Не стесняйтесь добавлять какие-либо полезные шаблоны. Звезда на git.

Это мой первый проект с открытым кодом NPM, но не первый на GitHub. Любите это, вилку. Ненавидьте это, критикуйте. Чтобы обновить прогресс этого хранилища вместе с интересными советами по JavaScript/React, следите за мной в Twitter: @bukharim96

Спасибо, что прочли этот пост.

Мир.

Добавить комментарий

Ваш адрес email не будет опубликован.