Skip to content

Commit fbe702b

Browse files
authored
feat(regex): add elevenDigitsCode and nineDigitsCode regex (#2132)
1 parent f22f402 commit fbe702b

File tree

3 files changed

+51
-0
lines changed

3 files changed

+51
-0
lines changed

.changeset/wicked-goats-punch.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@scaleway/regex": minor
3+
---
4+
5+
Add `elevenDigitsCode` and `nineDigitsCode` regex

packages/regex/src/__tests__/index.test.ts

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import {
2727
cron,
2828
dashedIpv4,
2929
digits,
30+
elevenDigitsCode,
3031
email,
3132
fourDigitsCode,
3233
hexadecimal,
@@ -37,6 +38,7 @@ import {
3738
ipv6,
3839
ipv6Cidr,
3940
macAddress,
41+
nineDigitsCode,
4042
pathSegment,
4143
phone,
4244
reverseDNS,
@@ -64,6 +66,7 @@ const uppercaseDomain = 'SUB.another-example.com'
6466
const longTldDomain = 'sub.another-example.verylongtld'
6567
const cronTest = '0 0 0 * * 0 1-4'
6668
const digitsTest = '0123456789'
69+
const elevenDigitsCodeTest = '01234567890'
6770
const emailTest = '[email protected]'
6871
const fourDigitsTest = '2345'
6972
const hexdigits = '0123456789abcdefABCDEF'
@@ -85,6 +88,7 @@ const urls = [
8588
]
8689
const whitespace = ' \t\n\r\x0b\x0c'
8790
const macAddress1 = '1F:B5:FA:47:CD:C4'
91+
const nineDigitsCodeTest = '012345678'
8892
const linuxPaths = {
8993
BAD: [
9094
'/var/test@',
@@ -640,6 +644,26 @@ describe('@regex', () => {
640644
})
641645
})
642646

647+
describe('elevenDigitsCode', () => {
648+
test.each([
649+
[asciiLetters, false],
650+
[asciiLowercase, false],
651+
[asciiUppercase, false],
652+
[digitsTest, false],
653+
[emailTest, false],
654+
[octdigits, false],
655+
[elevenDigitsCodeTest, true],
656+
[hexdigits, false],
657+
[printable, false],
658+
[punctuation, false],
659+
[whitespace, false],
660+
[cronTest, false],
661+
[macAddress1, false],
662+
])('should match regex %s to be %s', (string, expected) => {
663+
expect(elevenDigitsCode.test(string)).toBe(expected)
664+
})
665+
})
666+
643667
describe('email', () => {
644668
test.each([
645669
[asciiLetters, false],
@@ -679,6 +703,26 @@ describe('@regex', () => {
679703
})
680704
})
681705

706+
describe('nineDigitsCode', () => {
707+
test.each([
708+
[asciiLetters, false],
709+
[asciiLowercase, false],
710+
[asciiUppercase, false],
711+
[digitsTest, false],
712+
[emailTest, false],
713+
[octdigits, false],
714+
[nineDigitsCodeTest, true],
715+
[hexdigits, false],
716+
[printable, false],
717+
[punctuation, false],
718+
[whitespace, false],
719+
[cronTest, false],
720+
[macAddress1, false],
721+
])('should match regex %s to be %s', (string, expected) => {
722+
expect(nineDigitsCode.test(string)).toBe(expected)
723+
})
724+
})
725+
682726
describe('macAddress', () => {
683727
test.each([
684728
[asciiLetters, false],

packages/regex/src/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ export const fourDigitsCode = /^[0-9]{4}$/
4343
export const phone = /^\+[0-9]*/
4444
export const spaces = /^\s*$/
4545
export const sixDigitsCode = /^[0-9]{6}$/
46+
export const nineDigitsCode = /^[0-9]{9}$/
47+
export const elevenDigitsCode = /^[0-9]{11}$/
4648
export const url =
4749
/^http(s)?:\/\/?[\w.-]+(?:\.[\w.-]+)+[\w\-._~:/?#[\]@!$&'()*+,;=.]+$/
4850
export const hexadecimal = /^[0-9a-fA-F]+$/

0 commit comments

Comments
 (0)