'Disable Unnecessary escape character: \+

I have this regex of mine that will validate phone number (i.e. +1 (417) 230-0718). Using this regex /^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$/im, I've encountered and error while running my test cases in next about Unnecessary escape character: +. How to disable this eslint-error in order for me to proceed with my test case and use the regex.

Appreciate for any help!



Solution 1:[1]

Your example phone number does not match your original regex and that contains multiple unnecessary escapes.

To answer your initial question first: in a [] part, you don't need to escape characters - the only character with a special meaning is the ^, and that also only has a special meaning as the first character inside [] so you can put it further back. Also you don't need [] for only one character - then the escaped version is better.

Next to your regex not matching your example phone number: You are missing the international prefix after the + sign in the beginning.

I would rewrite your regex to the following:

/^(?:\+\d{1,3}[-\s.]?)?\(?[0-9]{3}\)?[-\s.]?[0-9]{3}[-\s.]?[0-9]{4,6}$/m

You don't need the i flag as there are no upper/lower case digits.

This updated regex allows for an optional 1 to 3 digit international prefix, but that has to be preceded with a +

Solution 2:[2]

It is correct way for this issue.

/^[+]?[(]?[0-9]{3}[)]?[-\s.]?[0-9]{3}[-\s.]?[0-9]{4,6}$/im

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 cyberbrain
Solution 2 Kunkka Admiral