繁体   English   中英

在Regex.test之后执行Regex.exec时发生意外行为

[英]Unexpected behavior when doing Regex.exec after Regex.test

我想知道正则表达式遇到这种行为的原因。

这是节点REPL中的再现。

> const BRACKET_ENDING = /[\)\}\]]/g;
undefined
> char = ']'
']'
> BRACKET_ENDING.test(char)
true
> BRACKET_ENDING.exec(char)
null
> BRACKET_ENDING.exec(char)
[ ']', index: 0, input: ']' ]

当我在Regex.exec()之后执行Regex.test() ,结果第一次为null 当我再次运行Regex.exec()时,我得到了预期的值。 我想念什么?

正则表达式具有lastIndex属性该属性指示从何处开始搜索。 每次调用exectest ,它都会推进该索引,下一个调用将从此处开始。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM