w3resource

JavaScript: Count the occurrence of a substring in a string

JavaScript String: Exercise-18 with Solution

Write a JavaScript function to count the occurrence of a substring in a string.

Test Data:
console.log(count("The quick brown fox jumps over the lazy dog", 'the'));
Output:
2
console.log(count("The quick brown fox jumps over the lazy dog", 'fox',false));
Output:
1

Pictorial Presentation:

JavaScript: Count the occurrence of a substring in a string

Sample Solution-1:

JavaScript Code:

function count(main_str, sub_str) 
    {
    main_str += '';
    sub_str += '';

    if (sub_str.length <= 0) 
    {
        return main_str.length + 1;
    }

       subStr = sub_str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
       return (main_str.match(new RegExp(subStr, 'gi')) || []).length;
    }
 
console.log(count("The quick brown fox jumps over the lazy dog", 'the'));
console.log(count("The quick brown fox jumps over the lazy dog", 'fox',false));

Sample Output:

2
1

Flowchart:

Flowchart: JavaScript- Count the occurrence of a substring in a string

Sample Solution-2:

Counts the occurrences of a substring in a given string.

  • Use Array.prototype.indexOf() to look for searchValue in str.
  • Increment a counter if the value is found and update the index, i.
  • Use a while loop that will return as soon as the value returned from Array.prototype.indexOf() is -1.

JavaScript Code:

//Source:https://bit.ly/3hEZdCl
// countSubstrings
const count_substr = (str, searchValue) => {
  let count = 0,
    i = 0;
  while (true) {
    const r = str.indexOf(searchValue, i);
    if (r !== -1) [count, i] = [count + 1, r + 1];
    else return count;
  }
}; 
console.log(count_substr("The quick brown fox jumps over the lazy dog", 'the'));
console.log(count_substr("The quick brown fox jumps over the lazy dog", 'fox'));

Sample Output:

1
1

Flowchart:

Flowchart: JavaScript- Count the occurrence of a substring in a string

Live Demo:

See the Pen JavaScript Count the occurrence of a substring in a string - string-ex-18 by w3resource (@w3resource) on CodePen.


Improve this sample solution and post your code through Disqus

Previous: Write a JavaScript function to chop a string into chunks of a given length.
Next: Write a JavaScript function to escape a HTML string.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



JavaScript: Tips of the Day

var functionName = function() {} vs function functionName() {}

The difference is that functionOne is a function expression and so only defined when that line is reached, whereas functionTwo is a function declaration and is defined as soon as its surrounding function or script is executed (due to hoisting).

For example, a function expression:

// TypeError: functionOne is not a function
functionOne();

var functionOne = function() {
  console.log("Hello!");
};

Historically, function declarations defined within blocks were handled inconsistently between browsers. Strict mode (introduced in ES5) resolved this by scoping function declarations to their enclosing block.

'use strict';    
{ // note this block!
  function functionThree() {
    console.log("Hello!");
  }
}
functionThree(); // ReferenceError

Ref: https://bit.ly/2zMAj1O