From bc9aef714ae2cd830da0ead4581caf49240abca6 Mon Sep 17 00:00:00 2001 From: dilaouid Date: Thu, 7 Sep 2023 21:33:44 +0200 Subject: [PATCH 1/3] change emoji regular expression to include custom emojis --- src/helpers/regex.helper.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/helpers/regex.helper.ts b/src/helpers/regex.helper.ts index de9c326..4c5431b 100644 --- a/src/helpers/regex.helper.ts +++ b/src/helpers/regex.helper.ts @@ -2,7 +2,7 @@ const socialNetworksUrlRegex = new RegExp( '^(https?://)?(www.)?(facebook.com|fb.me|twitter.com|vxtwitter.com|instagram.com|linkedin.com|youtube.com|youtu.be|pinterest.com|snapchat.com|tiktok.com)/[a-zA-Z0-9.-/?=&#_]+$', ); const punctuationRegex = /[.,!?]/g; -const emojiRegex = /(\p{Extended_Pictographic}|\p{Emoji_Component})/gu; +const emojiRegex = /|\p{Extended_Pictographic}/gu; export const isASocialNetworkUrl = (url: string): boolean => { return socialNetworksUrlRegex.test(url); From 4873510ac7157fa19732fcdc1f0c76f5dd39da09 Mon Sep 17 00:00:00 2001 From: dilaouid Date: Thu, 7 Sep 2023 23:37:04 +0200 Subject: [PATCH 2/3] fix: regex of custom emojis - ids can go from 17 to 19 digits --- src/helpers/regex.helper.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/helpers/regex.helper.ts b/src/helpers/regex.helper.ts index 4c5431b..d0e07c4 100644 --- a/src/helpers/regex.helper.ts +++ b/src/helpers/regex.helper.ts @@ -2,7 +2,7 @@ const socialNetworksUrlRegex = new RegExp( '^(https?://)?(www.)?(facebook.com|fb.me|twitter.com|vxtwitter.com|instagram.com|linkedin.com|youtube.com|youtu.be|pinterest.com|snapchat.com|tiktok.com)/[a-zA-Z0-9.-/?=&#_]+$', ); const punctuationRegex = /[.,!?]/g; -const emojiRegex = /|\p{Extended_Pictographic}/gu; +const emojiRegex = /|\p{Extended_Pictographic}/gu; export const isASocialNetworkUrl = (url: string): boolean => { return socialNetworksUrlRegex.test(url); From 536bd131f9c1791faa9cebb157d8b0c83ffd419f Mon Sep 17 00:00:00 2001 From: dilaouid Date: Thu, 7 Sep 2023 23:38:20 +0200 Subject: [PATCH 3/3] feat(test): add test of removeEmoji regex --- src/__tests__/regex.spec.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/__tests__/regex.spec.ts b/src/__tests__/regex.spec.ts index 9010bc0..0aa208d 100644 --- a/src/__tests__/regex.spec.ts +++ b/src/__tests__/regex.spec.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from 'vitest'; -import { isASocialNetworkUrl } from '../helpers/regex.helper'; +import { isASocialNetworkUrl, removeEmoji } from '../helpers/regex.helper'; describe('Helpers: Regex', () => { describe('Rule: isASocialNetworkUrl should regex correctly an url', () => { @@ -15,4 +15,11 @@ describe('Helpers: Regex', () => { expect(result).toBe(false); }); }); + describe('Rule: removeEmoji should remove all emojis from a string', () => { + it('removeEmoji() should remove all emojis from a string', () => { + const text = '👋 Hello, World!<:SpongebobMock:1136008737669259407>'; + const result = removeEmoji(text); + expect(result).toBe(' Hello, World!'); + }); + }); });