Skip to content

Common RegExp

// Exported array of common regex snippets
export const commonRegExp = [
{
id: 'exact-string-match',
title: 'Exact string match',
description: 'Match the exact string using ^ and $ anchors.',
pattern: '^abc$',
flags: '',
example: 'const regexp = /^abc$/',
},
{
id: 'empty-string',
title: 'Match empty string',
description: 'Match an empty string with start and end anchors.',
pattern: '^$',
flags: '',
example: 'const regexp = /^$/',
},
{
id: 'whitespace-sequences',
title: 'Match whitespace sequences',
description: 'Match one or more whitespace characters.',
pattern: '\\s+',
flags: 'g',
example: 'const regexp = /\\s+/g',
},
{
id: 'line-breaks',
title: 'Match line breaks',
description: 'Match CR, LF, or CRLF across lines.',
pattern: '\\r|\\n|\\r\\n',
flags: 'gm',
example: 'const regexp = /\\r|\\n|\\r\\n/gm',
},
{
id: 'email',
title: 'Match email',
description:
'A reasonably strict email validation with case-insensitive flag.',
pattern:
"^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'\\+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$",
flags: 'i',
example:
"const regexp = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_'\\+\\-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i",
},
{
id: 'non-word-characters',
title: 'Match non-word characters',
description:
'Match any character that is not a word character or whitespace.',
pattern: '[^\\w\\s]',
flags: 'gi',
example: 'const regexp = /[^\\w\\s]/gi',
},
{
id: 'alphanumeric-dashes',
title: 'Match alphanumeric, dashes and hyphens',
description: 'Useful for URL slugs.',
pattern: '^[a-zA-Z0-9-_]+$',
flags: '',
example: 'const regexp = /^[a-zA-Z0-9-_]+$/',
},
{
id: 'letters-and-whitespace',
title: 'Match letters and whitespaces',
description: 'Allow letters and space characters only.',
pattern: '^[A-Za-z\\s]+$',
flags: '',
example: 'const regexp = /^[A-Za-z\\s]+$/',
},
{
id: 'pattern-not-included',
title: 'Pattern not included',
description:
'Negative lookahead to ensure certain sub-patterns are not present.',
pattern: '^((?!(abc|bcd)).)*$',
flags: 'g',
example: 'const regexp = /^((?!(abc|bcd)).)*$/g',
},
{
id: 'text-inside-brackets',
title: 'Text inside parentheses',
description:
'Capture text inside parentheses. Swap delimiters for other bracket types.',
pattern: '\\(([^)]+)\\)',
flags: 'g',
example: 'const regexp = /\\(([^)]+)\\)/g',
},
{
id: 'validate-uuid',
title: 'Validate GUID/UUID (v4)',
description: 'Validate a v4 UUID format.',
pattern:
'^[0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-4[0-9a-fA-F]{3}\\-(8|9|a|b)[0-9a-fA-F]{3}\\-[0-9a-fA-F]{12}$',
flags: '',
example:
'const regexp = /^[0-9a-fA-F]{8}\\-[0-9a-fA-F]{4}\\-4[0-9a-fA-F]{3}\\-(8|9|a|b)[0-9a-fA-F]{3}\\-[0-9a-fA-F]{12}$/',
},
{
id: 'validate-date-ddmmyyyy',
title: 'Validate date format (DD/MM/YYYY)',
description: 'Validate day, month and year with / or - separators.',
pattern:
'^(0?[1-9]|[12][0-9]|3[01])[\\/\\-](0?[1-9]|1[012])[\\/\\-]\\d{4}$',
flags: '',
example:
'const regexp = /^(0?[1-9]|[12][0-9]|3[01])[\\/\\-](0?[1-9]|1[012])[\\/\\-]\\d{4}$/',
},
{
id: 'chunk-string',
title: 'Chunk string into n-size chunks',
description:
'Match between 1 and n characters; replace 2 with desired chunk size.',
pattern: '.{1,2}',
flags: 'g',
example: 'const regexp = /.{1,2}/g // where 2 is the chunk size',
},
]
const regexp = /\(([^)]+)\)/g
  • Use the ^ and $ anchors to match the start and end of the string, respectively.
  • Validate each segment of the GUID/UUID separately using numeric character ranges and quantifiers.
const regexp =
/^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-4[0-9a-fA-F]{3}\-(8|9|a|b)[0-9a-fA-F]{3}\-[0-9a-fA-F]{12}$/
  • Use the ^ and $ anchors to match the start and end of the string, respectively.
  • Validate each segment of the date separately using numeric character ranges and quantifiers.
  • Alter the order of the segments and separators to match different formats.
const regexp = /^(0?[1-9]|[12][0-9]|3[01])[\/\-](0?[1-9]|1[012])[\/\-]\d{4}$/
  • Use the .{1,n} quantifier to match any character between 1 and n times.
  • Add the global flag g to match all occurrences of the pattern in the string.
const regexp = /.{1,2}/g
// Where '2' is the number of characters per chunk