public static function validate($iswc)
{
if (!boolval(preg_match('/^\\s*T[\\-.]?(\\d)(\\d)(\\d)[\\-.]?(\\d)(\\d)(\\d)[\\-.]?(\\d)(\\d)(\\d)[\\-.]?(\\d)\\s*$/i', $iswc))) {
return false;
}
$hyphens = ['‐', '-', '.'];
$iswc = parent::unDecorate($iswc, $hyphens);
$sum = 1;
for ($i = 1; $i <= 9; ++$i) {
$sum = $sum + $i * (int) $iswc[$i];
}
$rem = $sum % 10;
if ($rem !== 0) {
$rem = 10 - $rem;
}
return (int) $iswc[10] === $rem;
}
/** * testInvalidIswc. * * @param mixed $iswc * * @dataProvider getInvalidIswc * * return void */ public function testInvalidIswc($iswc) { $this->assertFalse(Iswc::validate($iswc)); }