diff --git a/packages/regex/src/__tests__/index.ts b/packages/regex/src/__tests__/index.ts index e3b70f94c..89610f432 100644 --- a/packages/regex/src/__tests__/index.ts +++ b/packages/regex/src/__tests__/index.ts @@ -31,6 +31,7 @@ import { ipv6Cidr, macAddress, phone, + s3BucketName, sixDigitsCode, spaces, uppercaseBasicDomain, @@ -695,6 +696,26 @@ describe('@regex', () => { expect(hexadecimal.test(string)).toBe(expected) }) }) + describe('s3BucketName', () => { + test.each([ + [asciiLetters, false], + [asciiLowercase, true], + [asciiUppercase, false], + [digitsTest, true], + [emailTest, false], + [octdigits, true], + [fourDigitsTest, true], + [printable, false], + [phoneTest, false], + [sixDigitsCodeTest, true], + [punctuation, false], + [whitespace, false], + [cronTest, false], + [hexdigits, false], + ])('should match regex %s to be %s', (string, expected) => { + expect(s3BucketName.test(string)).toBe(expected) + }) + }) describe('ipv4', () => { test.each([ diff --git a/packages/regex/src/index.ts b/packages/regex/src/index.ts index 53694c10d..22c15294c 100644 --- a/packages/regex/src/index.ts +++ b/packages/regex/src/index.ts @@ -36,6 +36,7 @@ export const sixDigitsCode = /^[0-9]{6}$/ export const url = /^http(s)?:\/\/?[\w.-]+(?:\.[\w.-]+)+[\w\-._~:/?#[\]@!$&'()*+,;=.]+$/ export const hexadecimal = /^[0-9a-fA-F]+$/ +export const s3BucketName = /^[a-z0-9][-.a-z0-9]{1,61}[a-z0-9]$/ // Pasted from `ip-regex` package (https://github.com/sindresorhus/ip-regex/blob/main/index.js) const v4 =