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 )});