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>
在执行上述脚本时,将弹出输出窗口,在网页上显示数字。