Count number of times a character occurs in a string
TLDR
You want a function that takes two arguments – a string and a character – and returns the number of times the character appears in the string:
getCharCount('fizzbuzz', 'z')) // 4
getCharCount('JAVASCRIPT', 'a')) // 2
Here’s how:
function getCharCount(str, char) {
return (str.match(new RegExp(char, 'gi')) || []).length
}
Explanation
We make use of the RegExp
constructor to create a dynamic regular expression using the provided char
. We also pass the global match flag g
to find all occurrences of char
as well as the ignore case flag i
to make the search case-insensitive.
This means that if the given char
is b
, the regex would /b/gi
. If char
is c
, it would be /c/gi
and so on.
Once we have the regex built, we pass it to String.match
to find all occurrences of that regex within the given string. String.match
will return an array of all the matches or null
if no matches were found.
To make our code easier to read, we will just cast any null
results to an empty array []
so that we can then simply check for the array’s length to find the number of occurrences.
Thanks for your comment 🙏. Once it's approved, it will appear here.
Leave a comment