Difference between indexOf() and search() in JavaScript

This post is published to differentiate between the two search methods of JavaScript, that are:

indexOf() Vs. search()

The only two difference between these two are:

Both the methods returns the index of first character of specified value or substring. Otherwise returns -1 in case if specified value does not exists in the specified string. For example:

HTML with JavaScript Code
<!DOCTYPE html>
<html>
<body>

   <p>----Using indexOf()----<br>
      The index of 'Fun' = <span id="mySpan1"></span></p>
   <p>----Using search()----<br>
      The index of 'Fun' = <span id="mySpan2"></span></p>

   <script>
      let x = "JavaScript is Fun. Is not it?";
      let y = x.indexOf("Fun");
      document.getElementById("mySpan1").innerHTML = y;

      let a = "JavaScript is Fun. Is not it?";
      let b = a.search("Fun");
      document.getElementById("mySpan2").innerHTML = b;
   </script>
   
</body>
</html>
Output

----Using indexOf()----
The index of 'Fun' =

----Using search()----
The index of 'Fun' =

When indexOf() is Useful?

The indexOf() method is useful, when we need to search a value from specified position. For example:

HTML with JavaScript Code
<!DOCTYPE html>
<html>
<body>

   <p id="myPara"></p>

   <script>
      let mystr = "Javascript is fun, is not it?";
      let pos = mystr.indexOf("is", 15);

      document.getElementById("myPara").innerHTML = pos;
   </script>
   
</body>
</html>
Output

This is the only scenario when indexOf() method comes into picture, when talking about searching the position of specified value in a string. Otherwise search() method is prominent everywhere.

JavaScript Online Test


« Previous Tutorial Next Tutorial »