Javascript RegExp string pattern

javascript

Solution

The `/pattern/` literal only works as, well, a literal. Not within a string.

If you want to use a string pattern to create a regular expression, you need to create a new RegExp object:

var re = new RegExp(pattern_1)

And in that case, you would omit the enclosing frontslashes (`/`). These two lines are equivalent:

var re = /abc/g;
var re = new RegExp("abc", "g");

Problem

I need to check JS matches for a dynamically generated string. ie. ``` for(i=0; i< arr.length; i++) { pattern_1="/part of "+arr[i]+" string!/i"; if( string.search(pattern_1) != -1) arr_num[i]++; } ``` However, this code doesn't work - I presume due to the quotes. How do I do this? Many thanks.

Original source