ISBN-13, checked by HTML alone

This page contains no script. The field's pattern attribute holds a 23,814-character regular expression that the browser's own form validation runs on every change.

Accepted
978 or 979, then 10 digits, the last one a check digit.
Valid
9780306406157
Invalid
9780306406152 (last character changed)

Change the last character and the field turns red; submitting is blocked with the browser's own message. The field is required, so an empty field is invalid too. For an optional field, remove required: browsers never test an empty value against the pattern.

The check catches any single wrong digit. Some schemes miss certain swaps of neighbours: Luhn misses 09 ↔ 90, barcodes miss swaps of digits that differ by 5. Generated by rexsum.