gpt4 book ai didi

没有全局标志的 Javascript 正则表达式奇怪匹配

转载 作者:行者123 更新时间:2023-11-30 07:44:00 25 4
gpt4 key购买 nike

我想匹配一个首字母序列,整个序列,下面示例中的 second 正则表达式对我来说是正确的。为什么我需要“全局”标志?第一个也应该只匹配整个字符串,对吧? (因为 ^$)

abc = "A.B.C."
abc.match(/^([A-Z]\.)+$/) // result: ["A.B.C.", "C."]
abc.match(/^([A-Z]\.)+$/g) // result: ["A.B.C."]

谢谢!

最佳答案

因为parens不包括+。因此,当您执行 abc.match(/^([A-Z]\.)+$/) 时,parens 仅匹配第一个 [A-Z]\.

要获得所需的匹配项,您不需要 g 标志。只需使用 match[0] 作为结果即可。

var result = abc.match(/^([A-Z]\.)+$/)
if (result) {
var fullMatch = result[0];
}

此处的工作演示:http://jsfiddle.net/jfriend00/PXF6U/

有关 g 标志为何像您观察到的那样改变响应的详细信息,请参阅 Bergi 的回答。

关于没有全局标志的 Javascript 正则表达式奇怪匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10819745/

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