function check(s) { if (!/^\d{17}[\dxX]$/.test(s)) { alert('格式错误'); return; } var a = "7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2".split(' '); var b = "1 0 X 9 8 7 6 5 4 3 2".split(' '); var n = 0; for (var i = 0; i < 17; i++) n += s.charAt(i) * a[i]; if (b[n % 11] != s.charAt(17).toUpperCase()) { alert('最后一位应该是 ' + b[n % 11]); return; } alert('正确!'); }