Skip to content

liquid-labs/regex-repo

Repository files navigation

regex-repo

coverage: 100% Unit tests

regex-repo is a collection of regular expressions. Refer to the regex reference below for a list of the provided REs.

Installation

npm i @liquid-labs/regex-repo

Usage

import { emailRE } from '@liquid-labs/regex-repo' // ES6
// const { emailRE } = require('@liquid-labs/regex-repo') // cjs

const verified = emailRE.test(userInput)

Regex reference

Each regular expression listed below is paired with an embeddable string named xxxString. E.g., rgbRE is paired with rgbREString. Each RE will only match strings that are the given type and nothing else. I.e., the RE begins with '^' and ends with '$'. The xxxREString can be used for partial matches, matchAlls, and used as part of larger expressions. E.g., to find all unique CSS RGB colors used in a style sheet, you might do something like:

import { rgbREString } from '@liquid-labs/regex-repo'

const allColors = cssContent
  .matchAll(new RegExp(`[ :](${rgbREString})[; }]`, 'g'))
  .map((match) => match[1]) // extract the capture group
  .filter((v, i, arr) => i === arr.indexOf(v)) // filter non-unique items
  .sort()

AWS

  • awsS3BucketNameRE: Matches valid S3 bucket name. Note awsS3BucketNameREString cannot be used for partial matches.
  • awsS3TABucketNameRE: Matches S3 Transfer Acceleration compatible S3 bucket name. Note awsS3TABucketNameREString cannot be used for partial matches.

CSS numbers

  • zeroTo100FloatPercentRE: Matches a 0 to 100% float as used in CSS color specifications.
  • zeroTo100PercentRE: Matches a 0 to 100% integer as used in CSS color specifications.
  • zeroTo1FloatRE: Matches a 0 to 1 float as used in CSS color specifications.
  • zeroTo255FloatRE: Matches a 0 to 255 float as used in CSS color specifications.
  • zeroTo255RE: Matches a 0 to 255 integer as used in CSS color specifications.
  • zeroTo360FloatRE: Matches a 0 to 360 float as used in CSS color specifications.
  • zeroTo360RE: Matches a 0 to 360 integer as used in CSS color specifications.

Colors/CSS

  • cssColor3RE: Matches CSS3 'hex, rgb, rgba, hsl, and predefined colors.
  • cssColorRE: Matches CSS4 'hex, rgb, rgba, hsl, and predefined colors.
  • cssPreColors1RE: Matches CSS1 predefined color names.
  • cssPreColors2RE: Matches CSS2 predefined color names.
  • cssPreColors3RE: Matches CSS3 predefined color names.
  • cssPreColorsRE: Matches CSS4 predefined color names.
  • hexColorAlphaRE: Matches hex specified RGBA colors with an alpha channel.
  • hexColorNoAlphaRE: Matches hex specified RGB colors with no alpha channel.
  • hsl3RE: Matches CSS3 'hsl(...) and hsla(...) deg and percent notation.
  • hslRE: Matches CSS4 'hsl(...) and hsla(...) deg, grad, rad, turn and percent notation.
  • rgbaFuncRE: Matches CSS3 'rgba(...) using '0...255 and percent (integer) notation.
  • rgbFuncRE: Matches CSS1 'rgb(...) using '0...255 and percent (integer) notation.
  • rgbRE: Matches CSS4 'rgb(...) and rgba(...) functios using '0...255 and percent (float) notation.

Contact info

  • emailEncodedOrNotRE: Matche a valid email, URL encoded or not.
  • emailRE: Matche a valid email.
  • usPhoneRE: Matches US phone numbers with optional country code and area code.
  • zipCodeRE: Matches 5 or 9 digit US zip codes.

Identifiers

  • uuidRE: Matches a UUID.

JavaScript

  • jsReservedWordRE: Matches a JS resereved word.
  • jsVariableRE: Matches a valid JS variable name.

NPM

  • npmPackageNameRE: Matches an NPM package name. Provides matching groups 1 (org name, if any) and 2 (package basename).

Numbers

  • floatRE: Matches a float in either plan or scientific format.
  • plainFloatRE: Matches a plain (non-scientific notation) float.
  • scientificFloatRE: Matches a scientific notation float.

Web

  • urlRE: Matches a valid URL.