gpt4 book ai didi

php - 确定 10 位数字字符串是否为有效的亚马逊 ASIN

转载 作者:可可西里 更新时间:2023-10-31 22:08:42 24 4
gpt4 key购买 nike

我有一个 10 位数字的字符串传递给我,我想在进行更多处理和/或重定向之前验证它是否是有效的 ASIN。

我知道非 ISBN ASIN 总是非数字且长度为 10 个字符

我只想知道所传递的商品是有效的 ASIN,还是在我已经排除它可能是 ISBN 之后它只是一个搜索字符串。

例如,“SOUNDBOARD”是一个搜索词,而“B000J5XS3C”是一个 ASIN,“1412775884”是一个 ISBN。

是否有一种轻量级的方式来检查 ASIN?

最佳答案

2017 年更新

@Leonid 评论说他找到了 ASIN BT00LLINKI

虽然 ASIN 似乎并不是严格递增的,但最旧的非 ISBN ASIN 确实比新的 ASIN 有更多的零。也许我们不可避免地会开始看到没有零填充的 ASIN(然后是什么,我想知道……)。因此,我们现在正在寻找“B”后跟九个字母数字字符(或 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])$/

正如其他人所提到的,亚马逊并未真正透露规范。不过在实践中,我只看到了两种可能的 ASIN 格式:

  1. 10 位 ISBN,即 9 位数字 + 可以是数字或“X”的最后一个字符。
  2. 字母 B 后跟两位数字,再后跟七个 ASCII 范围的字母数字字符(字母字符为大写)。

如果有人遇到不符合该模式的 ASIN,请插话。实际上可能会有比这更严格的限制,但我不确定。非 ISBN ASIN 可能只使用字母字符的一个子集,但即使这样,它们也会使用其中的大部分。有些似乎比其他的出现得更频繁,至少(K,Z,Q,W ...)

关于php - 确定 10 位数字字符串是否为有效的亚马逊 ASIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2123131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com