PHP überprüfen, ob ein String eine valide Asin ist


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

Hinterlasse eine Antwort

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

  1. Das Muster im ' IsAsin’ fehlt eine quadratische öffnende geschweifte Klammer auf den letzten Teil:
    Es muss sein “/B[0-9]{2}[0-9A-Z]{7}|[0-9]{9}(X|[0-9])/”. Sie könnte ein Beispiel für ein vollständig numerischen ISBN auch testen., z.b.. ' 3898127052′