short-amazon

剛剛寫的縮短Amazon網址的小東西,純 javascript,還提供了 bookmarklet 版,理論上只要 Amazon 沒有改他的網址定義的話都會生效。

其實快寫完的時候Jedi大師告訴我以前有人寫過,不過我看一下前人的 code 後,發現我處理的比較完善,可以對付比較多國家的Amazon網址,不過中國的沒辦法就是。

昨天後來和討論過後,好像 dp (detail page) 發現好像治百病,所以剛剛修改過,變成產生的都是 dp/ASIN 這樣的網址,這樣就和 short amazon affiliate 一樣了,所以我比較強只有可以處理 .com 以外的和可以處理多行。

迴響(發表你的迴響)

  1. 1Jacky在 2008-12-19 10:28:09 發表:

    我會這樣寫 regexp:

    var url = ‘http://www.amazon.com/Complete-Star-Wars-Encyclopedia/dp/0345477634/ref=pdbbssr_1?ie=UTF8&s=books&qid=1229625244&sr=8-1’; var re = /^(http:\/\/www.amazon.[\w.]{2,6})\/.(\/(dp|gp\/product)\/\d\/).*/; if(re.test(url)) { url = url.replace(re,’$1$2’);
    }

    當然這樣做 readability 不太好 :p

  2. 2Jacky在 2008-12-19 10:44:52 發表:

    剛剛留了言,但好像發不了?

    我會這樣寫:http://jsbin.com/aqoli當然這樣 readability 會不太好 :p

  3. 3othree.net在 2008-12-19 11:35:45 發表:

    @Jacky

    其實還有一些比較特別的網址會沒顧慮到喔,像是有 ASIN 後面是問號而不是斜線的,還有 ASIN 前面沒 dp 或 gp 的例子,不過昨天測試好像是只要找到 ASIN ,然後前面加 dp 就可以了,不管原來是什麼形式,還在測試中。(長輩說似乎有遇過不行的)

  4. 4Jacky在 2008-12-19 12:37:22 發表:

    我也跟據你的改動修改了,asin 改成 [a-z0-9] 判定,和尾綴是 / 或 ? 也可以,見:http://jsbin.com/umiki

    (可以到http://jsbin.com/umiki/edit修改測試,很方便)

發表迴響

可以使用 Markdown 語法,語法說明

accesskey:P