How to clone a given regular expression in JavaScript ?
Last Updated :
17 Feb, 2023
Improve
In this article, we will know How to clone a regular expression using JavaScript. We can clone a given regular expression using the constructor RegExp().
The syntax of using this constructor has been defined as follows:-
Syntax:
new RegExp(regExp , flags)
Here regExp is the expression to be cloned and flags determine the flags of the clone. There are mainly three types of flags that are used.
- g:global flag with this flag the search looks for global match.
- i: With this flag the search is case-insensitive.
- m: With this flag we perform multi line matching.
Let us now look how we can clone a given regular expression using RegExp( ) constructor in Javascript.
Example:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<script src=
"https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js">
</script>
<title>Clone a given regular expression</title>
</head>
<body style="text-align: center">
<p>Enter Regular Expression to clone</p>
<input type="text" id="data" name="input" /><br />
<button id="b1">Clone Regex</button>
<div id="display"></div>
<script>
function cloneRegex(input, outputflag) {
var pattern = input.source;
const flags = [...new Set(input.flags + outputflag)].join("");
// Using RegExp constructor to for cloning regular expressions,
// optionally while modifying flag also.
return new RegExp(pattern, flags);
}
//Taking User data as input
var d = $("#data").val();
var regex = new RegExp(d, "i");
//Passing user data to cloneRegex function with g set as flag.
var clonedregex = cloneRegex(regex, "g");
$("#b1").click(function () {
$("#display").html("Cloned regex is as follows:-" + clonedregex);
});
</script>
</body>
</html>
Output 1:
Output 2: