JavaScript - Symbol.match 属性
JavaScript 符号 Symbol.match 用作正则表达式匹配操作中确定对象行为的方法的键。它允许您自定义对象的匹配方式,例如,它们如何响应对 String.prototype.match() 方法的调用。
使用此符号,程序员可以为对象构建自定义匹配逻辑,超越 JavaScript 内置类型行为。开发者可以使用此功能扩展正则表达式匹配对应用程序中更多数据类型和结构的适应性。
语法
以下是 JavaScript Symbol.match 属性的语法 -
regexp[Symbol.match] = false;
参数
此属性不接受任何类型的参数
返回值
返回字符串匹配的布尔值。如果匹配成功,则返回 true,否则返回 false。
示例
示例 1
让我们看下面的示例,我们将在其中自定义匹配行为。
<html>
<style>
body {
font-family: verdana;
color: #DE3163;
}
</style>
<body>
<script>
const x = {
[Symbol.match](a) {
return a.indexOf('Tp') !== -1 ? 'true' : false;
}
};
document.write('TutorialsPoint Tp'.match(x));
</script>
</body>
</html>
如果我们执行上述程序,它将在网页上显示文本。
示例 2
考虑另一种场景,我们将使用 Symbol.match 来定义对象的匹配行为。
<html>
<style>
body {
font-family: verdana;
color: #DE3163;
}
</style>
<body>
<script>
let x = {
[Symbol.match](a) {
return 'TutorialsPoint'.indexOf(a) !== -1;
}
};
document.write('M'.match(x), " < br > ");
document.write('P'.match(x));
</script>
</body>
</html>
执行上述脚本后,网页上将显示一段文本。
示例 3
在下面的示例中,我们将使用 Symbol.match 属性来仅匹配字母。
<html>
<style>
body {
font-family: verdana;
color: #DE3163;
}
</style>
<body>
<script>
const x = {
[Symbol.match]: function(string) {
return string.match(/[a-zA-Z]+/g);
}
};
const a = 'T123U456T6272O673R262I522X'.match(x);
document.write(a);
</script>
</body>
</html>
当我们执行脚本时,它会在网页上显示一段文本。
示例 4
以下是示例,我们将使用 Symbol.match 来匹配特定的模式。
<html>
<style>
body {
font-family: verdana;
color: #DE3163;
}
</style>
<body>
<script>
const x = {
[Symbol.match]: function(string) {
return string.match(/(\d+)/g);
}
};
const a = 'T1U2T3O1R4I3X'.match(x);
document.write(a);
</script>
</body>
</html>
执行上述脚本后,将弹出输出窗口,显示网页上的数字。

