10 haneli bir dize geçerli Amazon ASIN olup olmadığını belirleme

5 Cevap php

Ben bana geçirilen bir 10 basamaklı dize var, ve ben daha fazla işlem ve / veya yönlendirmeyi yapmadan önce geçerli bir ASIN olduğunu doğrulamak istiyorum.

Ben olmayan bir ISBN ASIN zaman non-sayısal ve uzunluğu 10 karakter olacağını biliyorum

Ben sadece geçirilen madde geçerli ASIN ya ben zaten bir ISBN olabileceğini ortadan kaldırmasından sonra sadece bir arama dizesi olup olmadığını söylemek mümkün olmak istiyorum.

"B000J5XS3C" bir ASIN ve "1412775884", ISBN iken Örneğin "SoundBoard" bir arama terimdir.

Asin kontrol etmek için hafif bir yolu var mı?

5 Cevap

Amazon Amazon ile programlama interaktif yapmanız gereken bir Amazon Associates Web Service, dahil, bir API sunuyor biliyor muydunuz. O (bazı moda) sorununuzu çözecektir sanıyorum. Daha fazla bilgi için Amazon Web Services ana sayfasına göz atın.

Javascript, ben bir dize makul bir ASIN olup olmadığını belirlemek için aşağıdaki regexpi kullanın:

/^\s*(B\d{3}\w{6}|\d{9}(?:X|\d))\s*$/

ya da, fazladan boşluklar ya da yakalamak endişesi olmadan:

/^B\d{2}\w{7}|\d{9}(X|\d)$/

Diğerleri de söylediğim gibi, Amazon gerçekten spec açıklamamıştır. Uygulamada Ben sadece olsa, ASINs iki olası biçimleri gördüm:

  1. 9 basamak + bir rakam ya da "X" olabilir nihai bir karakter olan 10 haneli ISBNler,
  2. six yedi alfanümerik karakterden ardından three iki basamaklı ardından B harfinin

Herkes, bu modele uyan Aslında bu daha kısıtlayıcı almak mümkün olabilir içeri melodi, ama emin değilim gelmez bir Asin karşılaştı varsa. Sigara ISBN ASINs sadece alfabetik karakterler bir alt kümesini kullanabilirsiniz, ama öyle olsa bile, onlar çoğu kullanırım. Bazıları diğerlerinden daha sık görünür gibi görünüyor, en azından (K, Z, Q, W. ..)

belki ASIN var olup olmadığını amazon sitede kontrol edebilir.

http://www.amazon.com/dp/YOUR10DIGITASIN

geçerli bir ASIN değildi bu URL http-statuscode = 200 ürün var ve bir 404 döndürür.

"Geçerli bir ASIN değilse ürün var ve bir 404 bu URL bir http-statuscode = 200 dönmek."

dokümanlar göre ASINs bölgeye özgü (Eğer inanmıyorsanız kendiniz için kontrol) olduğundan bu işe GEÇMEZ. diyelim - - Eğer sadece bir Asin doğrulamak amazon.co.uk amazon.co.uk de, bu yüzden de ASIN geliyor whre bilmek zorunda.

Her arama için bir - Ancak, sizin durumunuzda üç giriş alanları olan daha iyiyiz. ya da (daha iyi) bir alan, bir üç radyo düğmeleri. alternatif olarak, bir sözlük angainst dize kontrol edebilir ... ama tahmin alsways çok kötü mühendisliği.

dahası, geçerliliği için bir Asin kontrol etmek için hiçbir hafif bir yolu yoktur

http://www.sebastianviereck.de/en/php-ueberpruefen-ob-ein-string-eine-valide-asin-ist/ (İngilizce versiyonu): PHP için buraya ASINs geçerli bir normal ifade var