Skip to main content

Javascript Regular Expression with a variable

Regular expressions let us detect when a string matches a pattern. It's straightforward to make a hardcoded regular expression. This shows whether a phrase starts with a capital T:

<code>/^T/</code>

But what if you don't know the pattern ahead of time, like in a search form? What's the syntax when you're using a variable? I needed to find all the array elements that began with a phrase the user selected. Here's the snippet:

function startsWith(compareTo, value ){
     var startsWithRegExp = new RegExp('^' + compareTo);
     return startsWithRegExp.test(value);
}

The important bit is the RegExp constructor on line 2. Build up the pattern like a normal string, and omit the beginning and ending slashes. And here's how to filter the array.

var lookFor = 'T';
var candidates = ['Trouble', 'River City', 'Pool', 'Tempest in a Teapot'];
var matches = candidates.filter( function(value){ return startsWith(lookFor, value )});