All of us have used search features before. Most searches (such as Google) hit a database directory of some sort. There is a function in JavaScript that allows you to search through a string and find out if a string contains certain text. This function is called indexOf(). In fact, we can have a string search itself. Very introspective isn’t it? Let’s see how it works…
[code lang=”js”]
// Create a string variable
var str = "Hello everyone, JavaScript is cool!";
// Use indexOf() to search string
var n = str.indexOf("JavaScript");
// Output results
document.write(n);
[/code]
As you can see, we have a string. In this case, the string is stored in a variable. We can then call on the indexOf() method to search the string. All we need to do is pass to the method the content for which we are searching. In this case, the word, ‘JavaScript’. So what would this return? It would return the value of ’16’. So the variable n now has a value of 16. Why does it return ’16? This is the position where the found characters begin (this includes spaces and is zero based)…
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
H | e | l | l | o | e | v | e | r | y | o | n | e | , | Â | J |
What if we are searching for something that does not get found? If this occurs, the indexOf() method returns ‘-1’.Â
So what can we do with this? Well, we can incorporate the indexOf() method call into an ‘IF’ statement. If it returns ‘-1’, then we can tell the end user that the content is not found.
Note: indexOf() is case sensitive. So if we had searched for javascript, the value of n would be ‘-1’.
Happy Coding!
Clay Hess