16

10 桁の文字列が渡されましたが、さらに処理やリダイレクトを行う前に、それが有効な ASIN であることを確認したいと考えています。

非 ISBN ASIN は常に非数値で、長さは 10 文字であることを知っています。

渡されたアイテムが有効な ASIN であるか、ISBN である可能性があることを既に排除した後、単なる検索文字列であるかを判断できるようにしたいだけです。

たとえば、「SOUNDBOARD」は検索語ですが、「B000J5XS3C」は ASIN、「1412775884」は ISBN です。

ASINを確認する簡単な方法はありますか?

4

4 に答える 4

35

更新、2017

@Leonid は ASIN を見つけたとコメントしましたBT00LLINKI

ASIN は厳密に増加しているようには見えませんが、最も古い非 ISBN ASIN は、新しい ASIN よりも多くのゼロを持つ傾向があります。おそらく、ゼロ パディングのない ASIN が見られるようになるのは避けられないことでした (そして、どうなるのだろうか...)。そこで、「B」の後に 9 文字の英数字 (または ISBN) が続くものを探しています。

/^(B[\dA-Z]{9}|\d{9}(X|\d))$/

元の答え

Javascript では、次の正規表現を使用して、文字列が ASIN である可能性があるかどうか、またはそれを含むかどうかを判断します。

/^\s*(B\d{2}[A-Z\d]{7}|\d{9}[X\d])\s*$/

または、余分な空白やキャプチャを気にせずに:

/^(B\d{2}[A-Z\d]{7}|\d{9}[X\d])$/

他の人が述べたように、Amazon は実際には仕様を明らかにしていません。ただし、実際には、ASIN の可能な形式は 2 つしか見たことがありません。

  1. 10 桁の ISBN コード。9 桁 + 数字または「X」の最後の文字。
  2. 文字 B の後に 2 桁の数字が続き、その後に 7 つの ASCII 範囲の英数字 (英字は大文字) が続きます。

このパターンに当てはまらない ASIN に遭遇したことがある人は、声をかけてください。実際には、これよりもさらに制限を厳しくすることも可能かもしれませんが、私には確信が持てません。ISBN 以外の ASIN では、アルファベット文字のサブセットしか使用されない場合がありますが、使用されている場合でも、ほとんどの文字が使用されています。少なくとも (K、Z、Q、W...)

于 2012-10-10T20:24:38.393 に答える
0

ASINが存在するかどうかは、Amazonサイトで確認できます。

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

この URL は、商品が存在する場合は http-statuscode=200 を返し、有効な ASIN でない場合は 404 を返します。

于 2010-01-23T12:47:06.543 に答える