private string _pattern = @"^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$";
private int[] _weight = { 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 }; //十七位数字本体码权重
private string[] _validate = { "1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2" }; //对应校验码字符值
public bool CheckId(string id) {
var sum = 0;
for (var i = 0; i < 17; i++) {
sum = sum + int.Parse(id[i].ToString()) * _weight[i];
}
return _validate[sum % 11] == id[17].ToString();
}
网友评论