gpt4 book ai didi

javascript - 为什么 RegExp.test() 不一致?

转载 作者:行者123 更新时间:2023-12-02 06:02:01 26 4
gpt4 key购买 nike

我不明白为什么 javascript RegExp.test()每次我调用它时,方法都不会返回相同的结果。

给定以下 javascript 变量

var opener = '<span[^>]*>';
var regexo = new RegExp('^'+opener+'$', "g");

我执行以下操作:
alert(regexo.test('<span class="outer">')); // true
alert(regexo.test('<span class="inner">')); // false
alert(regexo.test('<span class="inner">')); // true

我在 Firefox 24.0 和 IE8 中对其进行了测试,结果同样奇怪。

为什么结果 true, false, true而不是 true, true, true ?

最佳答案

那是因为您使用 g旗帜。它将正则表达式对象转换为迭代器,其状态随每次调用而变化。

您不需要 g在此处标记,因此只需将其删除:

var regexo = new RegExp('^'+opener+'$');

关于javascript - 为什么 RegExp.test() 不一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19448957/

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