【发布时间】:2015-10-30 21:01:01
【问题描述】:
我目前是一名在家学习的学生,我严重卡在校验和问题上。该脚本应该验证PESEL(我认为社会安全号码的波兰语等价物),无论如何校验和的工作方式如下 佩塞尔:70051012347
PESEL:7,0,0,5,1,0,1,2,3,4 (7)
(Multiply each Pesel number by its corresponding check number)
检查:1,3,7,9,1,3,7,9,1,3
(Sum Each number)
总和:+ 7,0,0,45,1,0,7,18,3,12 =93
MOD:93 MOD 10 = 3
10 - 3 = 7(比塞尔的最后一位)
MOD 10 不等于 0 时,将 sum%10 的结果从 10 中减去,然后与原始数字中的最后一位匹配,如果匹配则为好,如果不是则为坏。我需要的只是一个好的或坏的结果。
我很确定我的代码中的所有这些都很好,并且有一个简单的解决方案,我只是看不到它。任何帮助都将不胜感激。
<html>
<head>
<meta charset="utf-8">
<title>Pesel Checker</title>
<script type="text/javascript">
function peselgood(y)
{
//sample PESEL's
//type 1
//70051012347
//02070803628
//07020803628
//type 2
//83102570819
if (y.length == 11)
{
var arr = [1,3,7,9,1,3,7,9,1,3];
var sum = 0;
//hold original number
var a = parseInt(y);
//First 10 digits without check number and convert to array
y = y.substring(0,9);
y = parseInt(y);
var arr1 = new Array(10);
arr1 = y;
//muliply pesel digits by checksum digits
for (var i = 0; i < 10; i++)
{
sum += arr[i] * arr1[i];
}
sum = sum%10;
if (sum !== 0)
{
sum = 10-sum;
if(sum != a[10])
{
return false;
}
else
{
return true;
}
}
}
else
{
return false;
}
}
function checkpesel()
{
num = document.getElementById("peselfield").value
if (peselgood(num))
{
document.getElementById("peselfield").style.background="#00ff00";
}
else
{
document.getElementById("peselfield").style.background="#ff6666";
}
}
</script>
</head>
<body>
<div>
Check Sum Template
<br/><br/>
<form name="form">
PESEL:
<input type="text" id="peselfield" value="70051012347" /> <button type="button" onclick="checkpesel()">Check</button>
<br/><br/>
</form>
</div>
<br/><br/>
</body>
</html>
【问题讨论】:
-
如果你给你的问题一个有意义的标题,更多的人可能会点击查看它。
标签: javascript html checksum