Value.match(/[^0-9|\/]/gi) 不适用于数字?

Value.match(/[^0-9|\/]/gi) is not working for numbers?

if (value.match(/[^0-9|\/]/gi)) {
   super.setValue(this.value, { ...options, emitModelToViewChange: true });
   return;
}

为什么这个 value.match 不起作用?

这是从教程中复制的,对于讲师来说它工作正常。

如果我在输入中输入 number'/' 应该是正确的,但在我的情况下,如果-语句将永远不会被执行。

感谢您的帮助。

[^0-9] 匹配除 0-9

范围内的任何字符
// E.g.

"9".match(/[^0-9|\/]/g) // null
"9".match(/[^0-5|\/]/g) // ["9"]

在正则表达式中,^ 表示 NOT。您在 0-9 或“/”范围内放置了一个 NOT。对于字母表,您当前的正则表达式 return 为真。删除 ^ 并试试这个:

if (value.match(/[0-9|\/]/gi)) {
   super.setValue(this.value, { ...options, emitModelToViewChange: true });
   return;
}

对于数字或“/”,这应该 return 正确。 /[^[0-9]|/]/gi 会为 '/' 提供 true,但不会为数字提供 true.