gpt4 book ai didi

javascript -/null/g.test ('null null' 的意外正则表达式行为)

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:41:51 27 4
gpt4 key购买 nike

var re = /null/g;

re.test('null null');
//> true

re.test('null null');
//> true

re.test('null null');
//> false

什么!?!?

我尝试在 Chrome、Firefox、Safari 中进行测试。将正则表达式与 RegExp 构造函数一起使用,但无济于事。

为什么会这样?

JS Bin with additional demo

最佳答案

全局正则表达式(那些使用 g 标志的)是特殊的。如果您在同一个字符串上多次调用它们,它们会搜索连续的匹配项。由于您的测试字符串恰好包含两个 null 匹配项,因此第三次调用 RegExp#test 返回 false(不能连续第三次匹配发现)。

要解决此问题,您可以像这样放弃 g 标志:

var re = /null/

console.log(re.test('null null')) //=> true
console.log(re.test('null null')) //=> true
console.log(re.test('null null')) //=> true

关于javascript -/null/g.test ('null null' 的意外正则表达式行为),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42731218/

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