Правильность последней цифры рассчитывается на основе идентификационного номера. Если это неверно, будет дан правильный результат. Очень интересно сломать программу.
<! Doctype html public "-// w3c // dtd xhtml 1.0 transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> xmlns = "http://www.w3.org/1999/xhtml"> <head> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"/> <title> javascript 18-дигитный идентификационный номер getIdchar18 (id) {var arr = id.split (''), sum = 0, vc = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; for (var i = 0; i <17; i ++) sum+= vc [i] * parseint (arr [i]); return ['1', '0', 'x', '9', '8', '7', '6', '5', '4', '3', '2'] [sum % 11]; } function valiveId (id) {if (/^/d{18 $/.test(id)) {var c = id.charat (17), rc = getIdchar18 (id); if (c == rc) showrst ('18-значный идентификационный номер, который вы введены, верен! else Showrst («18-значный идентификационный номер, который вы введены, неверен, 18-значный код проверки должен быть ' + rc +'! '); } else Showrst ('Пожалуйста, введите 18-значный идентификационный номер для идентификационного номера!'); } function showrst ('msg) {document.getElementById (' rst '). innerHtml = msg} </script> <input type = "text" onblur = "valyid (this.value)"/> <div Id = "rst"> </div> </body> </html>