<script>
function c9(s){
var w = new Array(0,3,7,9,10,5,8,4,2);
var sum = 0;
for(i=1;i<=8;i++){
sum += getCode(s.charAt(i-1))*w[i];
}
var c9 = 11 - (sum%11);
if(c9==10) c9="X";
if(c9==11) c9="0";
return c9
}
function getCode(c){
var a = new Array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
for(var i=0;i<a.length;i++){
if(c==a[i]) return i;
}
}
alert(c9("79013765"));</script>
function checkCode(code){
var reg = /^$|^[0-9|A-Z]{8}[0-9|X]$/;
var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var params = "3,7,9,10,5,8,4,2".split(",");
var sum = 0; if(reg.test(code)==false){
alert("数据格式不正确!");
}else{
for(var i=0; i<code.length-1; i++){
//取字符串前8位的每位数字
var temp = code.charAt(i);
//当数字为"0"到"9"时
if(str.indexOf(temp) == -1){
//当数字为0到9时,计算每位数字与参数的积并累加求和
sum = sum + parseInt(temp)*params[i];
}else{
//当数字为"A"到"Z"时,计算每位数字与参数的积并累加求和
sum = sum + (str.indexOf(temp)+10)*params[i];
}
}
// alert(sum);
if((code.length!=0)&&((11-sum%11)!=code.charAt(8))){
alert("数据验证位不正确!");
}
}
}
更改如下:
//检验组织机构代码值
function checkCode(code){
var reg = /^$|^[0-9|A-Z]{8}[0-9|X]$/;
var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var params = "3,7,9,10,5,8,4,2".split(",");
var sum = 0; if(reg.test(code)==false){
alert("数据格式不正确!");
}else{
for(var i=0; i <code.length-1; i++){
//取字符串前8位的每位数字
var temp = code.charAt(i);
//当数字为"0"到"9"时
if(str.indexOf(temp) == -1){
//当数字为0到9时,计算每位数字与参数的积并累加求和
sum = sum + parseInt(temp)*params[i];
}else{
//当数字为"A"到"Z"时,计算每位数字与参数的积并累加求和
sum = sum + (str.indexOf(temp)+10)*params[i];
}
}
// alert(sum);
if((code.length!=0)){
if(((11-sum%11)==10)&&(code.charAt(8)!="X")){
alert("数据验证位不正确!");
}else if(((11-sum%11)==11)&&(code.charAt(8)!="0")){
alert("数据验证位不正确!");
}else if((11-sum%11)!=code.charAt(8)){
alert("数据验证位不正确!");
}
}
}
}