From bf5e4569962dcabe0b90f2386160433f238e391f Mon Sep 17 00:00:00 2001 From: Pragatheeswaran Sorna Rajan Date: Tue, 20 Jun 2023 15:02:40 +0200 Subject: [PATCH] Fix for passing dot as splitcharacter to RegExp constructor --- src/TextInputMask.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/TextInputMask.tsx b/src/TextInputMask.tsx index 925be662..53c6d430 100644 --- a/src/TextInputMask.tsx +++ b/src/TextInputMask.tsx @@ -7,6 +7,10 @@ function detectCharacter(mask: string): string { return c || '' } +function escapeForRegExp(value: string): string { + return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') +} + function TextInputWithMask( { onChangeText, @@ -40,7 +44,7 @@ function TextInputWithMask( ) const replaceValue = format.match(/\W/) const replace = `$1${splitCharacter}$2${splitCharacter}$3$4`.replace( - new RegExp(splitCharacter, 'g'), + new RegExp(escapeForRegExp(splitCharacter), 'g'), (replaceValue ?? '') as string )