ISSN, checked by HTML alone

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

Accepted
7 digits, then a check digit or a capital X (for 10).
Valid
03785955
Invalid
03785952 (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.