У меня есть инструкция If-else, которая проверяет строку, чтобы увидеть, есть ли ISBN-10 или ISBN-13 (идентификатор книги).
Проблема, с которой я столкнулся, заключается в проверке ISBN-10, которая происходит до проверки ISBN-13, проверка ISBN-10 будет соответствовать любому значению с 10 символами или более, и поэтому может ошибиться в ISBN-13 для ISBN-10.
вот код...
$str = "ISBN:9780113411436";
if(preg_match("/\d{9}(?:\d|X)/", $str, $matches)){
echo "ISBN-10 FOUND\n";
//isbn returned will be 9780113411
return 0;
}
else if(preg_match("/\d{12}(?:\d|X)/", $str, $matches)){
echo "ISBN-13 FOUND\n";
//isbn returned will be 9780113411436
return 1;
}
Как я могу избежать этой проблемы?