Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

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.


compile(pattern, flags)



The text of the regular expression.


Any combination of flag values.

Return value

None (undefined).


Using compile()

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

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


ECMAScript Language Specification
# sec-regexp.prototype.compile

Browser compatibility

BCD tables only load in the browser

See also