Мне нужно регулярное выражение, чтобы проверить номер ISBN, введенный пользователем.Используйте регулярное выражение для проверки номера ISBN
ISBN должна быть строка содержит только: [10 or 13 digits] and hyphens
Я попытался ^[\d*\-]{10}|[\d*\-]{13}$
, но он не работает.
Моя регулярное выражение соответствует только: 978-1-5661
, 1-56619-90
, 1257561035
Он должен возвращает результаты ниже:
"978-1-56619-909-4 2" => false
"978-1-56619-909-4" => true
"1-56619-909-3 " => false
"1-56619-909-3" => true
"isbn446877428ydh" => false
"55 65465 4513574" => false
"1257561035" => true
"1248752418865" => true
Я очень признателен за любую помощь.
_it не работает_ не является надлежащим описанием проблемы. –
как было ** [здесь] (http://stackoverflow.com/questions/4381514/regular-expression-for-an-isbn-13) **? – YvesLeBorg
Вы не можете проверить ISBN с регулярным выражением. Последняя цифра - [контрольная сумма] (https://en.wikipedia.org/wiki/International_Standard_Book_Number#Check_digits) и должна быть вычислена. – GentlemanMax