gpt4 book ai didi

javascript - 针对 Null 测试 RegEx

转载 作者:搜寻专家 更新时间:2023-11-01 00:30:43 24 4
gpt4 key购买 nike

当在 null 上调用 RegEx.prototype.test() 时,JS 运行时似乎将 null 转换为其字符串形式("null" ) 然后测试正则表达式。几个例子:

/[a-z]+/.test(null)
true

/null/.test(null)
true

/[0-9]+/.test(null)
false

/nnull/.test(null)
false

我的问题是:

  1. 为什么?
  2. 根据当前规范,这是正确的行为吗?

这种行为非常不直观。由于 null 在概念上表示不存在任何对象,因此在概念上针对它的 RegEx 测试会失败是有道理的,因为不应该针对任何对象进行测试。许多基本的正则表达式在针对 “null” 的测试中会成功,这无济于事。

我已经在 Node.js 和 Firefox Nightly 中确认了这种行为。

最佳答案

是的,这是指定的。

根据 §21.2.5.13 "RegExp.prototype.test( S )"在 2015 版(第 6 版)中,前几个步骤之一是将“ToString”操作应用于参数 S,并使用其结果。 The "ToString" operation将各种非字符串值转换为字符串值; null,尤其是转换为 "null"

关于javascript - 针对 Null 测试 RegEx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35473255/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com