Berry Tsakala
Berry Tsakala

Reputation: 16600

How to concatenate regular expressions in JavaScript?

This is not what I'm asking for:

concatenate multiple regexes into one regex

Is there a way to append a regex into another one (in JavaScript language) ?

The reason for doing so is to simplify code maintenance (e.g. if the included string is long or easier to maintain by a non-programmer).

In Python, for example, i'd write something like:

regstr1 = 'dogs|cats|mice'
regstr_container = '^animal: (cows|sheep|%s|zebra)$' % regstr1
re.compile(regstr_container)

however, in JavaScript, the regular expression is not a string.

re = /^animal: (rami|shmulik|dudu)$/;

or am I missing something?

Upvotes: 4

Views: 7229

Answers (2)

Eli Grey
Eli Grey

Reputation: 35830

var regstr1 = 'dogs|cats|mice',
regstr_container = '^animal: (cows|sheep|'+ regstr1 +'|zebra)$',
regex = RegExp(regstr_container);

Upvotes: 3

Cᴏʀʏ
Cᴏʀʏ

Reputation: 107508

You don't have to use the literal notation. You could instead create a new RegExp object.

var myRegex = new RegExp("^animal: (rami|shmulik|dudu)$");

Upvotes: 6

Related Questions