From e58da199dcd185c309c0c5f41111ba3f21f92d15 Mon Sep 17 00:00:00 2001 From: mjolly Date: Mon, 31 Mar 2025 11:57:40 +0200 Subject: [PATCH 1/2] feat(regex): add regex for password --- .changeset/famous-foxes-juggle.md | 5 +++++ packages/regex/src/__tests__/index.test.ts | 13 +++++++++++++ packages/regex/src/index.ts | 3 +++ 3 files changed, 21 insertions(+) create mode 100644 .changeset/famous-foxes-juggle.md diff --git a/.changeset/famous-foxes-juggle.md b/.changeset/famous-foxes-juggle.md new file mode 100644 index 000000000..53bff9457 --- /dev/null +++ b/.changeset/famous-foxes-juggle.md @@ -0,0 +1,5 @@ +--- +"@scaleway/regex": patch +--- + +feat(regex): add regex for password diff --git a/packages/regex/src/__tests__/index.test.ts b/packages/regex/src/__tests__/index.test.ts index 01242d819..f0f1e9909 100644 --- a/packages/regex/src/__tests__/index.test.ts +++ b/packages/regex/src/__tests__/index.test.ts @@ -40,6 +40,7 @@ import { ipv6Cidr, macAddress, nineDigitsCode, + password, pathSegment, phone, reverseDNS, @@ -1117,4 +1118,16 @@ describe('@regex', () => { expect(sgPortRange.test(string)).toBe(expected) }) }) + + describe('password', () => { + test.each([ + ['password', true], + ['Password123!', true], + ['Password123!@#', true], + ['password`', false], + ['Password`123!@#', false], + ])('should match regex %s to be %s', (string, expected) => { + expect(password.test(string)).toBe(expected) + }) + }) }) diff --git a/packages/regex/src/index.ts b/packages/regex/src/index.ts index 2cad314ba..706ac09a0 100644 --- a/packages/regex/src/index.ts +++ b/packages/regex/src/index.ts @@ -92,3 +92,6 @@ export const absolutePath = /^\/(([\w. -]*)[^\s?]\/?)+$/ // A port range between 1 to 65535 separated by an hypen or a single number export const sgPortRange = /^(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|6[0-4][0-9]{3}|[1-5]?[0-9]{1,4})(-(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|6[0-4][0-9]{3}|[1-5]?[0-9]{1,4}))?$/ + +// Include all characters except backtick ` +export const password = /^[^`]+$/ From 795584a6bea1e9e8e398fbf7ffbbab32cb8d77f9 Mon Sep 17 00:00:00 2001 From: mjolly Date: Mon, 31 Mar 2025 16:40:37 +0200 Subject: [PATCH 2/2] feat(regex): remove @ first leter for regex password --- packages/regex/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/regex/src/index.ts b/packages/regex/src/index.ts index 706ac09a0..e494a22c5 100644 --- a/packages/regex/src/index.ts +++ b/packages/regex/src/index.ts @@ -94,4 +94,4 @@ export const sgPortRange = /^(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|6[0-4][0-9]{3}|[1-5]?[0-9]{1,4})(-(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|6[0-4][0-9]{3}|[1-5]?[0-9]{1,4}))?$/ // Include all characters except backtick ` -export const password = /^[^`]+$/ +export const password = /^(?!@)[^`]*$/