我有一些JavaScript,看起來一個Amazon鏈接中亞馬遜ASINs,例如JavaScript的負回顧後問題
http://www.amazon.com/dp/B00137QS28
爲此,我使用下面的正則表達式:/([A-Z0-9]{10})
然而,我不希望它匹配看起來像藝術家鏈接:
http://www.amazon.com/Artist-Name/e/B000AQ1JZO
所以我需要排除任何鏈接,其中t這裏是斜槓前面的'/ e'和10個字符的字母數字代碼。我認爲以下內容可以做到這一點:(?<!/e)([A-Z0-9]{10})
,但事實證明,負面的lookbehinds在JavaScript中不起作用。是對的嗎?有沒有另一種方式來做到這一點?
任何幫助將不勝感激!
作爲一個側面說明,要知道有很多亞馬遜的鏈接格式,這就是爲什麼我要列入黑名單而不是白名單,例如,這些都是在同一個頁面:
http://www.amazon.com/gp/product/B00137QS28/
http://www.amazon.com/dp/B00137QS28
http://www.amazon.com/exec/obidos/ASIN/B00137QS28/
http://www.amazon.com/Product-Title-Goes-Here/dp/B00137QS28/
是的,負向lookbehinds不受支持。 – 2012-02-11 00:19:28
JS中並沒有直接支持負向lookbehinds,但有一些非常簡單的方法來實現它們的邏輯。 [這個問題](https://stackoverflow.com/questions/641407/javascript-negative-lookbehind-equivalent)是這種事情的主要問題。我在其他地方給出了[更全面的答案](https://stackoverflow.com/questions/35142364/regex-negative-lookbehind-not-valid-in-javascript/35143111#35143111)。 – 2016-02-09 02:00:23