yoda
yoda

Reputation: 10981

javascript regex: match value within string

I have this expression to check wether if a key exists in a url :

new RegExp('/'+x+'/ig')

(removed the irrelevant code)

Thing is, it isn't working. I suppose I have to use delimiters (start and end) to work, since the url has many other things, but not sure how to do it.

Any thoughts?

Upvotes: 1

Views: 788

Answers (2)

Jakob
Jakob

Reputation: 24370

It kinda looks like you're mixing regexp literals and strings.

One way to write a regexp is like this:

var myExp = new RegExp('[a-z]*')

It matches any number of letters from a-z, any number of times. Another way to do the same thing would be like this:

var myExp = /[a-z]*/

or even

var myExp = /[a-z*]/ig

where ig means "ignore case" and "global".

So, stick to one way of writing it. Don't mix strings and literals.

Edit:

If you want to use the first syntax, but also ignore case and make the match global, pass the string 'ig' as a second argument to the RegExp-constructor (new RegExp('[a-z]*', 'ig'))

Upvotes: 2

Gareth
Gareth

Reputation: 138140

When you use new Regex(), you have to pass the flags as a second parameter

new RegExp(x, 'ig')

Note that you don't need the literal delimiters when you create a RegExp this way

Upvotes: 4

Related Questions