From 27f98b745899ec9aaa50eb658dba5516ce839e10 Mon Sep 17 00:00:00 2001 From: QuiiBz Date: Wed, 19 Jul 2023 09:42:37 +0200 Subject: [PATCH] feat(regex): add alphanumdashunderscore regex --- .changeset/serious-singers-shout.md | 5 +++++ packages/regex/src/__tests__/index.ts | 23 +++++++++++++++++++++++ packages/regex/src/index.ts | 1 + 3 files changed, 29 insertions(+) create mode 100644 .changeset/serious-singers-shout.md diff --git a/.changeset/serious-singers-shout.md b/.changeset/serious-singers-shout.md new file mode 100644 index 000000000..574a27471 --- /dev/null +++ b/.changeset/serious-singers-shout.md @@ -0,0 +1,5 @@ +--- +'@scaleway/regex': minor +--- + +Add alphanumdashunderscore regex diff --git a/packages/regex/src/__tests__/index.ts b/packages/regex/src/__tests__/index.ts index 41b498ad2..e13ebbe41 100644 --- a/packages/regex/src/__tests__/index.ts +++ b/packages/regex/src/__tests__/index.ts @@ -17,6 +17,7 @@ import { alphanumdashdotsspaces, alphanumdashorempty, alphanumdashspaces, + alphanumdashunderscore, alphanumdashunderscoredotsspacesparenthesis, alphanumdots, ascii, @@ -286,6 +287,28 @@ describe('@regex', () => { }) }) + describe('alphanumdashunderscore', () => { + test.each([ + [alphanumdashText, true], + [alphanumdashdotsText, false], + [alphanumdashunderscoredotsparenthesisText, false], + [asciiLetters, true], + [asciiLowercase, true], + [asciiUppercase, true], + [digitsTest, true], + [emailTest, false], + [octdigits, true], + [hexdigits, true], + [printable, false], + [punctuation, false], + [whitespace, false], + [cronTest, false], + [macAddress1, false], + ])('should match regex %s to be %s', (string, expected) => { + expect(alphanumdashunderscore.test(string)).toBe(expected) + }) + }) + describe('alphanumdashorempty', () => { test.each([ [alphanumdashText, true], diff --git a/packages/regex/src/index.ts b/packages/regex/src/index.ts index b8cacd05b..1d4022cb5 100644 --- a/packages/regex/src/index.ts +++ b/packages/regex/src/index.ts @@ -7,6 +7,7 @@ export const alphanumdash = /^[a-zA-Z0-9-]*$/ export const alphanumdashdots = /^[a-zA-Z0-9-.]*$/ export const alphanumdashdotsorempty = /^$|^[a-zA-Z0-9-.]*$/ export const alphanumdashdotsspaces = /^[a-zA-Z0-9-.\s]*$/ +export const alphanumdashunderscore = /^[a-zA-Z0-9-_]*$/ export const alphanumdashunderscoredotsspacesparenthesis = /^[a-zA-Z0-9-_.()\s]*$/