JavaScript - Symbol.replace 属性



Symbol.replace 属性用于定义 String.prototype.replace() 函数调用的方法。在以子字符串或正则表达式作为初始参数调用 String.prototype.replace() 时,JavaScript 会在内部搜索传递给它的对象的 Symbol.replace 属性。如果检测到,则调用此函数以执行替换逻辑。

开发人员可以通过创建自定义 Symbol.replace 方法来操作 JavaScript 应用程序中的字符串,从而更改字符串替换操作的行为。

语法

以下是 JavaScript Symbol.replace 属性的语法 -


 [Symbol.replace](string)

参数

此属性只接受一个参数,即 String。

返回值

此属性返回一个新字符串。

示例 1

让我们看一下以下示例,其中我们将使用 Symbol.replace 和自定义对象。


<html>
	 	<style>
	 	 	 body {
	 	 	 	 	font-family: verdana;
	 	 	 	 	color: #DE3163;
	 	 	 }
	 	</style>
	 	<body>
	 	 	 <script>
	 	 	 	 	const x = {
	 	 	 	 	 	 [Symbol.replace](string, replace) {
	 	 	 	 	 	 	 	return string.replace(/To/g, replace);
	 	 	 	 	 	 }
	 	 	 	 	};
	 	 	 	 	const a = "Welcome, To!";
	 	 	 	 	const y = a.replace(x, "To qikepu");
	 	 	 	 	document.write(y);
	 	 	 </script>
	 	</body>
</html>

如果我们执行上述程序,它将在网页上显示文本。

示例 2

考虑另一种情况,我们将使用 Symbol.replace 进行日期格式设置。


<html>
	 	<style>
	 	 	 body {
	 	 	 	 	font-family: verdana;
	 	 	 	 	color: #DE3163;
	 	 	 }
	 	</style>
	 	<body>
	 	 	 <script>
	 	 	 	 	const x = {
	 	 	 	 	 	 [Symbol.replace](y) {
	 	 	 	 	 	 	 	const date = new Date(y);
	 	 	 	 	 	 	 	return `${date.getDate()}-${date.getMonth() + 1}-${date.getFullYear()}`;
	 	 	 	 	 	 }
	 	 	 	 	};
	 	 	 	 	const a = "02-07-2024";
	 	 	 	 	document.write(a.replace(x));
	 	 	 </script>
	 	</body>
</html>

在执行上述脚本时,它将在网页上显示文本。

示例 3

在下面的示例中,我们将用 '*' 替换元音。


<html>
	 	<style>
	 	 	 body {
	 	 	 	 	font-family: verdana;
	 	 	 	 	color: #DE3163;
	 	 	 }
	 	</style>
	 	<body>
	 	 	 <script>
	 	 	 	 	const x = {
	 	 	 	 	 	 [Symbol.replace](str) {
	 	 	 	 	 	 	 	return str.replace(/[aeiou]/gi, '*');
	 	 	 	 	 	 }
	 	 	 	 	};
	 	 	 	 	document.write('qikepu'.replace(x));
	 	 	 </script>
	 	</body>
</html>

当我们执行脚本时,它将在网页上显示一个 '*'。

示例 4

下面是一个示例,我们将用它们的双倍值替换数字。


<html>
	 	<style>
	 	 	 body {
	 	 	 	 	font-family: verdana;
	 	 	 	 	color: #DE3163;
	 	 	 }
	 	</style>
	 	<body>
	 	 	 <script>
	 	 	 	 	const x = {
	 	 	 	 	 	 [Symbol.replace](str) {
	 	 	 	 	 	 	 	return str.replace(/\d/g, match => match * 3);
	 	 	 	 	 	 }
	 	 	 	 	};
	 	 	 	 	document.write('Raju had 3 chocolates and 2 biscuits'.replace(x));
	 	 	 </script>
	 	</body>
</html>

在执行上述脚本时,将弹出输出窗口,在网页上显示文本。