JavaScript Basics: String Contains Function
In many of the server-side programming languages like C#, the String object has a Contains
method that returns a boolean indicating if the string contains another specified string. JavaScript however does not have a .contains
method. Fortunately, the .indexOf
method in JavaScript can easily be used to mimic or build your own .contains
method.
Simple JavaScript String Contains Method
Here’s a simple implementation of a “.contains” function that is case sensitive:
function contains(value, searchFor)
{
return (value || '').indexOf(searchFor) > -1;
}
Sample Usage:
// returns true
var v1 = contains('one value', 'value');
// returns false
var v2 = contains('another value', 'two');
Something to note about the above method is that it implements a JavaScript Null Coallesce to prevent the method from throwing an exception if null
or undefined
are passed in. This may or may not be necessary for your use, but most times a false result is preferred over a JavaScript exception.
Make it Ignore Case
To make it ignore case you just need to modify the function to convert the passed in strings to be either all uppercase or all lowercase. Here’s a modified version that does this:
function contains(value, searchFor)
{
var v = (value || '').toLowerCase();
var v2 = searchFor;
if (v2) {
v2 = v2.toLowerCase();
}
return v.indexOf(v2) > -1;
}
Happy coding!