Check if a Regex matches an Entire String in JavaScript

avatar

Borislav Hadzhiev

2 min

banner

Photo from Unsplash

Check if a Regex matches an Entire String #

Use the test() method to check if a regular expression matches an entire string, e.g. /^hello$/.test(str).

The caret ^ and dollar sign $ match the beginning and end of the string.

index.js
const str = 'hello'; const test = /^hello$/.test(str); console.log(test); // ๐Ÿ‘‰๏ธ true const match = str.match(/^hello$/); console.log(match); // ๐Ÿ‘‰๏ธ ['hello']

The RegExp.test method returns true if the regular expression is matched in the string and false otherwise.

The forward slashes / / mark the beginning and end of the regular expression.

The caret ^ and dollar sign $ match the beginning and end of the input.

The caret ^ lets us specify that the string has to start with a given character and the dollar sign $ that it has to end with the specified character.

Anything in between also has to match.

If either of the conditions is not met, the test() method will return false.

index.js
const str = 'hello'; const test = /^hell$/.test(str); console.log(test); // ๐Ÿ‘‰๏ธ false

The regular expression doesn't match the entire string, so the test() method returns false.

Getting an array of the matches #

If you need to get an array containing the match(es), you can use the String.match method.

index.js
const str = 'hello123'; const match = str.match(/^hello[0-9]+$/g); console.log(match); // ๐Ÿ‘‰๏ธ ['hello123'] console.log(match[0]); // ๐Ÿ‘‰๏ธ 'hello123'

The String.match method matches a string against a regular expression.

Our regular expression uses a character class [] to check for a range of digits 0-9 at the end of the string.

The plus + matches one or more of the preceding items (digits).

The match() method returns an array containing the matches (if any) or null if no matches are found.

Use the logical OR (||) operator to provide an empty array as a fallback in case null is returned.

index.js
const str = 'hello123'; const match = str.match(/^bye[0-9]+$/) || []; console.log(match); // ๐Ÿ‘‰๏ธ []

If there is no match, we return an empty array. This prevents us from getting an error when we try to access the array element at index 0 on a null value.

I wrote a book in which I share everything I know about how to become a better, more efficient programmer.
book cover
You can use the search field on my Home Page to filter through all of my articles.

Copyright ยฉ 2023 Borislav Hadzhiev