拿这个例子:JavaScript匹配()正则表达式函数应该返回什么?
"12345".match(/(?=(\d{4}))/g);
粘贴以上行到我的(铬)控制台返回["", ""]
但对我来说,我试图提取的["1234", "2345"]
阵列。 This MDN article似乎表明,我确实应该期待一系列的比赛。
这个确切的字符串的特定正则表达式肯定会返回那些从昨天起在this question中证明的匹配。
任何人都可以请澄清预期的行为应该是什么,以及我可以采取的任何替代方法,如果我对这个功能做了一个不正确的假设和/或滥用它。
(1)您无法在多个匹配中匹配您的源字符串中的相同字符,这显然是您想要的,因为“234”在两个期望的匹配中。 (2)前瞻性不会捕获它正在展望的角色,所以这就是为什么你会得到空字符串。 – trincot
你不能从答案中窃取正则表达式,而是忽略使用正则表达式的代码。 Chrome会为您的代码生成预期的输出。如果你使用你链接的答案中提供的代码,你会得到你想要的结果。 –
@Rawing - 正如我在评论中所说的那样,代码导致了我的无限循环。我今天晚些时候会重新访问它,但'match()'更吸引我,因为它看起来更短/更易读。 – DaveHolt