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 = /^[^`]+$/