This library provides a collection of useful regular expressions for various use cases.
bun i -D @archoleat/reglib-
ATTRIBUTE_REGEX
- Pattern:
\[[^\]]+\]. - Description: Matches an attribute in square brackets.
- Example: Matches
[attr],[data-test], but not[attr or attr].
- Pattern:
-
CLASS_REGEX
- Pattern:
\.[a-z0-9_-]+. - Description: Matches a CSS class name starting with a dot (.).
- Example: Matches
.class,.my-class,.class_name, but notclassor.class!.
- Pattern:
-
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 notBlockorblock!.
- Pattern:
-
ELEMENT_REGEX
- Pattern:
(__[a-z0-9]+(-[a-z0-9]+)*). - Description: Matches a BEM element name.
- Example: Matches
__element,__my-element, but notelementor__element!.
- Pattern:
-
MODIFIER_REGEX
- Pattern:
(--[a-z0-9]+(-[a-z0-9]+)*). - Description: Matches a BEM modifier name.
- Example: Matches
--modifier,--my-modifier, but notmodifieror--modifier!.
- Pattern:
-
SIBLING_REGEX
- Pattern:
(?:[^ ,{}]+\s*)?\+\s*[^ ,{}]+. - Description: Matches a sibling selector in CSS.
- Example: Matches
+ p,div + p,.class + .another-class, but notdiv > p.
- Pattern:
-
CHILD_REGEX
- Pattern:
(?:[^ ,{}]+\s*)?>\s*[^ ,{}]+. - Description: Matches a child selector in CSS.
- Example: Matches
> p,div > p,.class > .another-class, but notdiv + p.
- Pattern:
-
ATTRIBUTE_SIBLING_REGEX
- Pattern:
\[[^\]]+\]\s*\+\s*[^ ,{}]+. - Description: Matches an attribute selector followed by a sibling selector.
- Example: Matches
[attr] + div,[data-test] + .class.
- Pattern:
-
ATTRIBUTE_CHILD_REGEX
- Pattern:
\[[^\]]+\]\s*>\s*[^ ,{}]+. - Description: Matches an attribute selector followed by a child selector.
- Example: Matches
[attr] > div,[data-test] > .class.
- Pattern:
-
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.
- Pattern:
-
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.
- Pattern:
-
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.
- Pattern:
-
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.
- Pattern:
-
NESTED_ATTRIBUTE_REGEX
- Pattern:
&\[[^\]]+\]. - Description: Matches a nested attribute selector.
- Example: Matches
&[attr],&[data-test].
- Pattern:
-
NESTED_CLASS_REGEX
- Pattern:
&\.[a-z0-9_-]+. - Description: Matches a nested class selector.
- Example: Matches
&.class,&.my-class.
- Pattern:
-
EMAIL_REGEX
-
Pattern:
^[^\s@]+@[^\s@]+\.[^\s@]+$. -
Description: Matches email addresses with basic validation.
-
Example: Matches
user@example.com,test.email@domain.co.uk, but notinvalid@,@domain.com, oruser@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 notWindows,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-, or123.
-
Please read CONTRIBUTING to start contributing.
This project is licensed under the MIT license.