Um zu überprüfen, ob ein String eine valide Asin ist, muss man die 2 möglichen Regeln für Asins überprüfen:
- ein „B“ gefolgt von 2 Zahlen und 7 alphanumerischen Werten
- eine spezial ISBN-Vairiante: 9 Zahlen und am Ende entweder ein „X“ oder eine weitere Zahl (sehr selten)
Der passende reguläre Ausdruck in einer Funktion gekapselt in PHP ist:
function isAsin($string){ $ptn = "/B[0-9]{2}[0-9A-Z]{7}|[0-9]{9}(X|0-9])/"; if(preg_match($ptn, $string, $matches)){ return true; } }
Zum Testen habe ich folgenden Code verwendet:
$testAsins = array("B223213FCF","232342342X", "A223213FCF"); foreach ($testAsins as $testAsin) { if(isAsin($testAsin)){ echo $testAsin." is ASIN"."<br>"; } }
Ausgabe des Skripts ist:
B223213FCF is ASIN 232342342X is ASIN