ts-regex-builder icon indicating copy to clipboard operation
ts-regex-builder copied to clipboard

[Feature] Common Regex Patterns

Open mdjastrzebski opened this issue 1 year ago • 4 comments

Is your feature request related to a problem? Please describe. Provide regex patterns for common use cases like:

  • [ ] URL
  • [ ] email
  • [ ] hashtags
  • [ ] hex color

Each pattern should be available in two versions:

  • validator - the goal of this pattern type is to validate that given string is a valid email, url, etc. This type of pattern should focus on RFC/standards compliance.
  • finder - the goal of this pattern type is to effectively find given types of patterns (e.g. emails, hashtags, etc) in a longer text. This pattern types aims to be 90% in order to improve efficiency.

Describe the solution you'd like Patterns will be imported through ts-regex-builder/patterns import. See #72 for implementation of that part.

Whole library is and should remain tree-shakable, so that unused patterns (and features) are removed by bundlers in order to reduce bundle size.

Describe alternatives you've considered

  1. Providing pattens in examples/docs - this is an extra step and potentially hard to discover
  2. Do nothing - making correct version of certain patterns (e.g. URL) is hard, and we as the library providers can make user life easier here.

Checklist (for each pattern)

  • [ ] Implementation
  • [ ] Tests
  • [ ] API docs
  • [ ] README docs (if relevant)

CC: @PaulJPhilp

mdjastrzebski avatar Mar 13 '24 21:03 mdjastrzebski

I have a candidate for the URL patterns in my repo: . i am writing an article about using ts-regex-builder to build this regex. The point I am trying to make in the article is that this library allows you to write regular expressions like normal hygienic software. So, I break the URL pattern into sub-patterns (Scheme, Authority, ....). Can you take a look at what I've done before I put together a full PR and provide your feedback.

PaulJPhilp avatar Mar 21 '24 17:03 PaulJPhilp

@PaulJPhilp awesome. Please send me some link to the code and I'll take a look.

mdjastrzebski avatar Mar 21 '24 19:03 mdjastrzebski

Maciej:

Sorry for the delay. I ran into a bug (bug report to follow). Here is my repo with the partially completed URL pattern. Please let me know your feedback.

https://github.com/PaulJPhilp/ts-regex-builder

Thank you, Paul

PaulJPhilp avatar Mar 25 '24 19:03 PaulJPhilp

@PaulJPhilp you're definitely going in the good directions. The difficulty of the task, imo lies in the fact that URL is a complex pattern built from different smaller patterns, and it's a tedious work to get all of these right.

I've lefts some comments on the last commit: https://github.com/PaulJPhilp/ts-regex-builder/commit/0fdbf6c2fe6f69ea70dfdbb26a9991d1ddf614d5#diff-350009127029ecbdcc6940f99827bae2f3ece87b095a287c48db47ace9ef363dR43

BTW Pls create PR next, time, as it's make review and discussion happen in one, well defined place.

mdjastrzebski avatar Mar 26 '24 22:03 mdjastrzebski