How to validate an exact match with Regex in TypeScript
Regex is one of those tools you may or may not never use but nonetheless it is helpful to now.
First we need to decide what value we are matching against. In my case I am matching against an input value added
To do that I did:
const searchValue: string = event.currentTarget.value;
I chose to use event.currentTarget.value instead of event.target.value because of the following reason.
It always refers to the element to which the event handler has been attached, as opposed to
Event.target
, which identifies the element on which the event occurred and which may be its descendant.
Since I needed to make a dynamic match with the Regex I created a new Regex constructor with the match and assigned it to a variable.
let exactMatch = new RegExp("\\b(" + searchValue + ")\\b","gi");
This sets a boundary rule on both sides of the searchValue variable this variable contains the value that the user types into the input value, adds the global flag to test against all possible matches and the i flag to make the search case insensitive
Lastly I checked the value of the input using
searchValue.match(exactMatch);
Since the input value is a string, I am checking that the searchValue is an exact match to the Regex rule.
This works because if you try to simply return the regex it returns the string form of the regex rules instead of the actual. Using the match method allows you to check that a string matches the Regex rules you put into place and returns an array containing all matching results.