JavaScript - Symbol.search 属性



JavaScript 中的 Symbol.search 属性是一个特殊的符号值,用作已知符号的键。此元件用作对象的属性键,以定义在字符串中搜索的自定义行为。它主要与正则表达式和 String.prototype.search() 方法结合使用。

当 Symbol.search 属性用作对象上的方法时,它定义对象在调用其 search() 方法时的行为方式。默认情况下,search() 方法在字符串中搜索指定值并返回第一次出现的索引,如果找不到该值,则返回 -1。

语法

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


 [Symbol.search](string)

参数

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

返回值

此属性返回字符串匹配的位置,否则如果未找到匹配项,它将返回 '-1'。

示例 1

让我们看一下下面的示例,我们将在其中使用利用 Symbol.search 的方法创建自定义对象


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

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

示例 2

考虑另一个场景,我们将 Symbol.search 与自定义类一起使用。


<html>
	 	<style>
	 	 	 body {
	 	 	 	 	font-family: verdana;
	 	 	 	 	color: #DE3163;
	 	 	 }
	 	</style>
	 	<body>
	 	 	 <script>
	 	 	 	 	class x {
	 	 	 	 	 	 constructor(value) {
	 	 	 	 	 	 	 	this.value = value;
	 	 	 	 	 	 }
	 	 	 	 	 	 [Symbol.search](string) {
	 	 	 	 	 	 	 	return string.indexOf(this.value);
	 	 	 	 	 	 }
	 	 	 	 	}
	 	 	 	 	const a = new x('EveryOne');
	 	 	 	 	document.write('Welcome EveryOne'.search(a));
	 	 	 </script>
	 	</body>
</html>

在执行上述脚本时,它将在网页上显示一个数字。

示例 3

在以下示例中,如果未找到匹配项,我们将返回 '-1'。


<html>
	 	<style>
	 	 	 body {
	 	 	 	 	font-family: verdana;
	 	 	 	 	color: #DE3163;
	 	 	 }
	 	</style>
	 	<body>
	 	 	 <script>
	 	 	 	 	const a = " 	 Welcome To The qikepu";
	 	 	 	 	const x = /is/;
	 	 	 	 	Symbol.search = function(string, pattern) {
	 	 	 	 	 	 const index = string.indexOf(x);
	 	 	 	 	 	 return index === -1 ? -1 : index;
	 	 	 	 	};
	 	 	 	 	document.write(a.search(x));
	 	 	 </script>
	 	</body>
</html>

当我们执行脚本时,它会在网页上显示一个数字。

示例 4

下面是一个示例,我们将采用正则表达式并执行匹配。


<html>
	 	<style>
	 	 	 body {
	 	 	 	 	font-family: verdana;
	 	 	 	 	color: #DE3163;
	 	 	 }
	 	</style>
	 	<body>
	 	 	 <script>
	 	 	 	 	const x = {
	 	 	 	 	 	 [Symbol.search](string) {
	 	 	 	 	 	 	 	const regex = /The/;
	 	 	 	 	 	 	 	return regex.exec(string).index;
	 	 	 	 	 	 }
	 	 	 	 	};
	 	 	 	 	const str = "Welcome To The World";
	 	 	 	 	document.write(str.search(x));
	 	 	 </script>
	 	</body>
</html>

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