npm.io
1.10.1 • Published 2d ago

@archoleat/reglib

Licence
MIT
Version
1.10.1
Deps
0
Size
13 kB
Vulns
0
Weekly
0

Regex Library

NPM Version NPM Downloads Specs Commitlint Editorconfig Prettier ESLint Remark

Table of Contents

This library provides a collection of useful regular expressions for various use cases.

Installation

bun i -D @archoleat/reglib

List of Regex

  • ATTRIBUTE_REGEX

    • Pattern: \[[^\]]+\].
    • Description: Matches an attribute in square brackets.
    • Example: Matches [attr], [data-test], but not [attr or attr].
  • CLASS_REGEX

    • Pattern: \.[a-z0-9_-]+.
    • Description: Matches a CSS class name starting with a dot (.).
    • Example: Matches .class, .my-class, .class_name, but not class or .class!.
  • BLOCK_REGEX

    • Pattern: [a-z][a-z0-9]*(-[a-z0-9]+)*.
    • Description: Matches a BEM block name.
    • Example: Matches block, my-block, block-name, but not Block or block!.
  • ELEMENT_REGEX

    • Pattern: (__[a-z0-9]+(-[a-z0-9]+)*).
    • Description: Matches a BEM element name.
    • Example: Matches __element, __my-element, but not element or __element!.
  • MODIFIER_REGEX

    • Pattern: (--[a-z0-9]+(-[a-z0-9]+)*).
    • Description: Matches a BEM modifier name.
    • Example: Matches --modifier, --my-modifier, but not modifier or --modifier!.
  • SIBLING_REGEX

    • Pattern: (?:[^ ,{}]+\s*)?\+\s*[^ ,{}]+.
    • Description: Matches a sibling selector in CSS.
    • Example: Matches + p, div + p, .class + .another-class, but not div > p.
  • CHILD_REGEX

    • Pattern: (?:[^ ,{}]+\s*)?>\s*[^ ,{}]+.
    • Description: Matches a child selector in CSS.
    • Example: Matches > p, div > p, .class > .another-class, but not div + p.
  • ATTRIBUTE_SIBLING_REGEX

    • Pattern: \[[^\]]+\]\s*\+\s*[^ ,{}]+.
    • Description: Matches an attribute selector followed by a sibling selector.
    • Example: Matches [attr] + div, [data-test] + .class.
  • ATTRIBUTE_CHILD_REGEX

    • Pattern: \[[^\]]+\]\s*>\s*[^ ,{}]+.
    • Description: Matches an attribute selector followed by a child selector.
    • Example: Matches [attr] > div, [data-test] > .class.
  • CLASS_SIBLING_REGEX

    • Pattern: \.[a-z0-9_-]+\s*\+\s*[^ ,{}]+.
    • Description: Matches a class selector followed by a sibling selector.
    • Example: Matches .class + div, .my-class + .another-class.
  • CLASS_CHILD_REGEX

    • Pattern: \.[a-z0-9_-]+\s*>\s*[^ ,{}]+.
    • Description: Matches a class selector followed by a child selector.
    • Example: Matches .class > div, .my-class > .another-class.
  • NESTED_ATTRIBUTE_SIBLING_REGEX

    • Pattern: &\[[^\]]+\]\s*\+\s*[^ ,{}]+.

    • Description: Matches a nested attribute selector followed by a sibling selector.

    • Example: Matches &[attr] + div, &[data-test] + .class.

  • NESTED_ATTRIBUTE_CHILD_REGEX

    • Pattern: &\[[^\]]+\]\s*>\s*[^ ,{}]+.

    • Description: Matches a nested attribute selector followed by a child selector.

    • Example: Matches &[attr] > div, &[data-test] > .class.

  • NESTED_CLASS_SIBLING_REGEX

    • Pattern: &\.[a-z0-9_-]+\s*\+\s*[^ ,{}]+.
    • Description: Matches a nested class selector followed by a sibling selector.
    • Example: Matches &.class + div, &.my-class + .another-class.
  • NESTED_CLASS_CHILD_REGEX

    • Pattern: &\.[a-z0-9_-]+\s*>\s*[^ ,{}]+.
    • Description: Matches a nested class selector followed by a child selector.
    • Example: Matches &.class > div, &.my-class > .another-class.
  • NESTED_ATTRIBUTE_REGEX

    • Pattern: &\[[^\]]+\].
    • Description: Matches a nested attribute selector.
    • Example: Matches &[attr], &[data-test].
  • NESTED_CLASS_REGEX

    • Pattern: &\.[a-z0-9_-]+.
    • Description: Matches a nested class selector.
    • Example: Matches &.class, &.my-class.
  • EMAIL_REGEX

    • Pattern: ^[^\s@]+@[^\s@]+\.[^\s@]+$.

    • Description: Matches email addresses with basic validation.

    • Example: Matches user@example.com, test.email@domain.co.uk, but not invalid@, @domain.com, or user@domain.

  • FONT_FILE_NAME_REGEX

    • Pattern: A complex regex for matching font file names.

    • Description: Matches font file names based on family, weight, italic, variable, and extension.

    • Example: Matches Roboto-Bold.woff2, OpenSans-Italic-Variable.ttf.

      More info validate-font-file-name

  • IS_MOBILE_REGEX

    • Pattern: Mobi|iP(hone|od|ad)|Android|BlackBerry.

    • Description: Detects mobile devices based on user agent strings.

    • Example: Matches iPhone, iPad, Android, BlackBerry, Mobile Safari, but not Windows, Macintosh.

  • NAME_REGEX

    • Pattern: ^(?!-)[A-Za-z\u00C0-\u017FА-Яа-яЁё\s\-\u3000\u3040-\u309F\u30A0-\u30FF\u4E00-\u9FAF\u3400-\u4DBF]+(?<!-)$.

    • Description: Matches names with support for Latin, Cyrillic, Japanese, and Chinese scripts. Cannot start or end with a hyphen.

    • Example: Matches John Doe, Jean-Paul, Иван Петров, 田中太郎, but not -John, Name-, or 123.

Contributing

Please read CONTRIBUTING to start contributing.

License

This project is licensed under the MIT license.