RegExp.prototype.compile()

Deprecated

Avoid using this feature in new projects. The compile() method duplicates behavior of the RegExp() constructor and it exists only for backwards compatibility. This feature may be a candidate for removal from web standards or browsers.

Note: The compile() method is only specified for compatibility reasons. Using compile() causes the otherwise immutable regex source and flags to become mutable, which may break user expectations. You can use the RegExp() constructor to construct a new regular expression object instead.

The compile() method of RegExp instances is used to recompile a regular expression with new source and flags after the RegExp object has already been created.

Syntax

js
compile(pattern, flags)

Parameters

pattern

The text of the regular expression.

flags

Any combination of flag values.

Return value

None (undefined).

Exceptions

TypeError

Thrown if the this value is not an instance of the current realm's RegExp constructor. This includes a subclass of RegExp and the RegExp constructor from a different realm.

Examples

Using compile()

The following example shows how to recompile a regular expression with a new pattern and a new flag.

js
const regexObj = /foo/gi;
regexObj.compile("new foo", "g");

Specifications

Specification
ECMAScript® 2027 Language Specification
# sec-regexp.prototype.compile

Browser compatibility

See also