拿這個例子:JavaScript匹配()正則表達式函數應該返回什麼?
"12345".match(/(?=(\d{4}))/g);
粘貼以上行到我的(鉻)控制檯返回["", ""]
但對我來說,我試圖提取的["1234", "2345"]
陣列。 This MDN article似乎表明,我確實應該期待一系列的比賽。
這個確切的字符串的特定正則表達式肯定會返回那些從昨天起在this question中證明的匹配。
任何人都可以請澄清預期的行爲應該是什麼,以及我可以採取的任何替代方法,如果我對這個功能做了一個不正確的假設和/或濫用它。
(1)您無法在多個匹配中匹配您的源字符串中的相同字符,這顯然是您想要的,因爲「234」在兩個期望的匹配中。 (2)前瞻性不會捕獲它正在展望的角色,所以這就是爲什麼你會得到空字符串。 – trincot
你不能從答案中竊取正則表達式,而是忽略使用正則表達式的代碼。 Chrome會爲您的代碼生成預期的輸出。如果你使用你鏈接的答案中提供的代碼,你會得到你想要的結果。 –
@Rawing - 正如我在評論中所說的那樣,代碼導致了我的無限循環。我今天晚些時候會重新訪問它,但'match()'更吸引我,因爲它看起來更短/更易讀。 – DaveHolt