Skip to content

Commit deff2ca

Browse files
author
Tom Lienard
authored
feat(regex): add s3 bucket name regex (#1093)
* feat(regex): add s3 bucket name regex * fix: update regex according to the spec
1 parent 5288d6d commit deff2ca

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

packages/regex/src/__tests__/index.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import {
3131
ipv6Cidr,
3232
macAddress,
3333
phone,
34+
s3BucketName,
3435
sixDigitsCode,
3536
spaces,
3637
uppercaseBasicDomain,
@@ -695,6 +696,26 @@ describe('@regex', () => {
695696
expect(hexadecimal.test(string)).toBe(expected)
696697
})
697698
})
699+
describe('s3BucketName', () => {
700+
test.each([
701+
[asciiLetters, false],
702+
[asciiLowercase, true],
703+
[asciiUppercase, false],
704+
[digitsTest, true],
705+
[emailTest, false],
706+
[octdigits, true],
707+
[fourDigitsTest, true],
708+
[printable, false],
709+
[phoneTest, false],
710+
[sixDigitsCodeTest, true],
711+
[punctuation, false],
712+
[whitespace, false],
713+
[cronTest, false],
714+
[hexdigits, false],
715+
])('should match regex %s to be %s', (string, expected) => {
716+
expect(s3BucketName.test(string)).toBe(expected)
717+
})
718+
})
698719

699720
describe('ipv4', () => {
700721
test.each([

packages/regex/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ export const sixDigitsCode = /^[0-9]{6}$/
3636
export const url =
3737
/^http(s)?:\/\/?[\w.-]+(?:\.[\w.-]+)+[\w\-._~:/?#[\]@!$&'()*+,;=.]+$/
3838
export const hexadecimal = /^[0-9a-fA-F]+$/
39+
export const s3BucketName = /^[a-z0-9][-.a-z0-9]{1,61}[a-z0-9]$/
3940

4041
// Pasted from `ip-regex` package (https://github.com/sindresorhus/ip-regex/blob/main/index.js)
4142
const v4 =

0 commit comments

Comments
 (0)