Ruby's Louvre

每天学习一点点算法

导航

验证身份证

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('正确!');
} 

posted on 2011-06-14 11:08  司徒正美  阅读(1117)  评论(2编辑  收藏  举报