-
字符串成为有效ASIN需要满足哪些条件? 10个字符长,应该包含数字(多少-最小/最大-在什么位置),没有空格和。。。? – 阿马尔戈什 评论 2010年1月23日12:35 -
ASIN编号长度为10个字符。 这是亚马逊发布的唯一一个固定要求。 通常,它们也可以是10位ISBN编号(但这很容易,因为它都是数字。)它们通常以B开头,但并不总是这样,并且它们混合了字母和数字,没有空格,因此没有“ASIN RegEx”方法来区分可能的搜索词和ASIN。 – RAD驼鹿 评论 2010年1月23日13:08 -
有一点值得注意,在我目前能找到的所有情况下,有效ASIN(不是ISBN)的第一个字符总是B。然而,根据亚马逊的说法,这并不能保证。 – RAD驼鹿 评论 2010年1月24日4:31 -
我现在回到使用AWS产品广告API。 – RAD驼鹿 评论 2010年1月24日4:37 -
1 我使用了Ulrich Mierendorff撰写的一篇题为“Amazon®AWS HMAC signed request using PHP”的文章中的信息以及Amazon AWS Product Advertising API。 mierendo.com/software/aws_signed_query – RAD驼鹿 评论 2010年1月24日4:42
4个答案
2017年更新
/^(B[\dA-Z]{9}|\d{9}(X|\d))$/
原始答案
/^\s*(B\d{2}[A-Z\d]{7}|\d{9}[X\d])*$/
/^(B\d{2}[A-Z\d]{7}|\d{9}[X\d])$/
10位ISBN,即9位+最后一个字符,可以是数字或“X”。 字母B后面是两个数字,后面是七个ASCII范围的字母数字字符(字母字符为大写)。
-
-
事实上,@Styxxy——我认为这就是问题的真正含义。 当然,如果不询问Amazon,就无法知道可能的ASIN是否正在使用中,但您至少可以知道它值得首先检查。 如果产品广告或MWS产品API对于一个人的需求来说太重,那么Flurin的答案仍然是可靠的。 幸运的是,DSA的担忧是大多数人可以忽略的。 没有太多细节,你实际上 可以 假设一个ASIN从不指向两个完全不同的产品。 存在异常,但非常罕见(并且是错误)。 – 分号 评论 2012年10月11日1:39 -
三 -
1 撇开幽默不谈,这两个例子都符合上面的模式——(/^B\d{2}\w{7}|\d{9}(X|\d)$/i).test('B00000BIES')//true – 分号 评论 2014年10月20日23:37 -
1
函数isAsin($string){ $ptn=“/^(?i)(B0|BT)[0-9A-Z]{8}$/”; if(preg_match($ptn,$string,$matches)){ 返回true; } } $testAsins=数组('k023l5bix8','bb03l5bix2','b143l5bix8','bt00plinki','',''); foreach($testAsins作为$testAsin){ if(isAsin($testAsin)){ echo$testAsin。 “是ASIN”。 “<br>”; }其他{ echo$testAsin。 “不是ASIN”。 “<br>”; } }
说明:
/^(?i)(B0|BT)[0-9A-Z]{8}$/
/^=开始
(?i)=区分大小写
(B0|BT)=从B0或BT开始
[0-9A-Z]=任何数字或字母
{8} =允许8个数字或字母(位于B0或BT中+2的顶部)