I would like to know how to match a string against an array of regular expressions.
I know how to do this looping through the array.
I also know how to do this by making a long regular expression separated by |
I was hoping for a more efficient way like
if (string contains one of the values in array) {
For example:
string = "the word tree is in this sentence";
array[0] = "dog";
array[1] = "cat";
array[2] = "bird";
array[3] = "birds can fly";
In the above example, the condition would be false.
However, string = "She told me birds can fly and I agreed"
would return true.
How about creating a regular expression on the fly when you need it (assuming the array changes over time)
demo http://jsfiddle.net/gaby/eM6jU/
For browsers that support javascript version 1.6 you can use the
some()
methodhttp://jsfiddle.net/gaby/eM6jU/1/
If you have the literal strings in an array called
strings
you want to match, you can combine them into an alternation by doingIf you don't have only literal strings, you want to combine regular expressions, then you use http://code.google.com/p/google-code-prettify/source/browse/trunk/js-modules/combinePrefixPatterns.js
Is that ok ?
(Many years later)
My version of @Gaby's answer, as I needed a way to check CORS origin against regular expressions in an array: