JavaScript 如何克隆给定的正则表达式
在本文中,我们将了解如何使用JavaScript克隆一个正则表达式。我们可以使用构造函数 RegExp() 来克隆一个给定的正则表达式。
使用该构造函数的语法如下所示:
语法:
new RegExp(regExp , flags)
在这里regExp是要被克隆的表达式,flags确定克隆的标志。主要有三种类型的标志被使用。
- g : 全局匹配标志。
- i : 忽略大小写标志。
- m : 多行匹配标志。
现在让我们看看如何使用Javascript中的RegExp( )构造函数来克隆一个给定的正则表达式。
示例
<!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>
输出1:
输出2: