PDA

View Full Version : سوال: تائید صحت کد ملی



hamidhassas
دوشنبه 25 فروردین 1393, 01:00 صبح
من با کد زیر کد ملی شخص رو چک میکنم و همه چیز درسته فقط یک مشکلم دارم اون هم اینه که وقتی پیغام داده میشه که کد ملی اشتباه است بجای اینکه اطلاعات فرم ارسال نشه و عملیات متوقف بشه فرم به صفحه بعد منتقل میشه و اطلاعات در دیتابیس زخیره میشه





<script>
function IsCodemeli(value) {
var r=0;
var n=0;
var c=0;
var msg=document.getElementById('register_melli_code_e rrorloc');
msg.innerHTML="";

if (value.length <10){
msg.innerHTML="طول کد ملی وارد شده باید 10 کاراکتر باشد ";
return false;
}
else if (value.length == 10) {
if (value == '1111111111' || value == '0000000000' || value == '2222222222' || value == '3333333333' || value == '4444444444' || value == '5555555555' || value == '7777777777' || value == '8888888888' || value == '9999999999')
msg.innerHTML="کد ملی وارد شده اشتباه است";
}
else if (value.charAt(0) == '0' && value.charAt(1) == '0' && value.charAt(2) == '0' && value.charAt(3) == '0' && value.charAt(4) == '0' && value.charAt(5) == '0' && value.charAt(6) == '0')
msg.innerHTML="کد ملی وارد شده اشتباه است";

c = parseInt(value.charAt(9));
for (i=1; i<=9; i++){
n= n + parseInt(value.charAt(i-1) * (11-i));
}
r = parseInt(n % 11);
if ((r <2 && r == c) || (r > 2 && c == 11 - r)){
//msg.innerHTML="کد ملی وارد شده صحیح است";
msg.innerHTML="";
return true;
}
else
msg.innerHTML="کد ملی وارد شده اشتباه است";
}
</script>

cups_of_java
دوشنبه 25 فروردین 1393, 14:32 عصر
شما تو همه قسمت های کد ملی اشتباه return false نزاشتی...
ضمنن بهتر بود کد ملی رو توی یک خط با یک Regular Expression صحتش رو چک میکردی و انقدر پیچیدش نمی کردی

hamidhassas
پنج شنبه 28 فروردین 1393, 16:15 عصر
خوب میشه زحمتش رو بکشین من جز این کد چیزی بلاد نبودم و نیستم