gpt4 book ai didi

javascript - 无法理解 javascript 的正则表达式的工作方式

转载 作者:行者123 更新时间:2023-11-30 10:35:59 24 4
gpt4 key购买 nike

为什么这段代码(here's the JSBin):

var text = "T: 01202 870738";

var regex1 = /T: (.*)/;
var matches1 = text.match(regex1);

for(var i = 0; i < matches1.length; i++) {
log("[" + i + "]: " + matches1[i]);
}

记录这个:

[0]: T: 01202 870738
[1]: 01202 870738

和这段代码(注意我已经添加了 g 选项):

var regex2 = /T: (.*)/g;
var matches2 = text.match(regex2);

for(var i = 0; i < matches2.length; i++) {
log("[" + i + "]: " + matches2[i]);
}

记录这个:

[0]: T: 01202 870738

我什至不明白为什么第一个代码将 01202 870738 记录为第二个匹配项。如果 /T: (.*)/ 不包含 T:,它如何匹配?

最佳答案

第二个是全局正则表达式,因此返回的数组是字符串中表达式的所有匹配项的列表。第一个不是,所以它是一个组列表,就像您从 exec 中获得的那样。 (第 0 组是整个匹配项,第 1 组是唯一带括号的...组。)

关于javascript - 无法理解 javascript 的正则表达式的工作方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14016974/

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