gpt4 book ai didi

javascript - 为什么 JavaScript RegEx 在调用之间保持状态?

转载 作者:数据小太阳 更新时间:2023-10-29 05:06:38 24 4
gpt4 key购买 nike

<分区>

今天我遇到了一个非常奇怪的 JavaScript 正则表达式问题。使用全局修饰符 (//g) 时,RegExp.test() 在后续调用中产生不同的值。谁能解释一下为什么?

var s = "youtube.com/watch?v=XyeebVA3DNk";

var re1 = /^youtube\.com\/watch[a-zA-Z0-9_\-\?\&\=\/]+/g;

console.log(re1.test(s)); // true
console.log(re1.test(s)); // false
console.log(re1.test(s)); // true
console.log(re1.test(s)); // false
console.log(re1.test(s)); // true
console.log(re1.test(s)); // false
console.log(re1.test(s)); // true

var re2 = /^youtube\.com\/watch[a-zA-Z0-9_\-\?\&\=\/]+/;

console.log(re2.test(s)); // true
console.log(re2.test(s)); // true
console.log(re2.test(s)); // true
console.log(re2.test(s)); // true
console.log(re2.test(s)); // true
console.log(re2.test(s)); // true

我能够在 Chrome 8 和 FireFox 3.6 中重现这一点。

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