چطور می تونم کد ملی طرف را چک کنم؟
چطور می تونم کد ملی طرف را چک کنم؟
براي اين طور كارها معمولا از regex يا همون regualr experssion استفاده ميشه .
اگه واقعا تشخیص اعتبار کد ملی براتون مهمه موضوع پیچیده تر از این حرفاست .
این مقاله رو مطالعه بفرمایید ...
http://itcom.pnuab.ac.ir/news.php?id=44&cat=11
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>code meli validator</title>
<script>
function IsCodemeli(value) {
var r=0;
var n=0;
var c=0;
var msg=document.getElementById('msg');
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="کد ملی وارد شده صحیح است";
return true;
}
else
msg.innerHTML="کد ملی وارد شده اشتباه است";
}
</script>
</head>
<body>
<p> Enter National Code:
<input name="codeMeli" type="text" maxlength="10" id="codeMeli" style="width: 100px; " />
<div id="msg" style="font-family:tahoma; font-size:12px; color:#FF0000; text-align: center;"></div>
</p>
<label>
<input name="check" type="submit" id="check" value="check" onclick="return IsCodemeli(document.getElementById('codeMeli').val ue);" />
</label>
<p><br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
</p>
<p><br>
<br>
<br>
<center>
© WeB2Fa.Com - Author :<a href="nobody.2021@gmail.com"> A:N</a> - 2009
</p>
</body>
</html>
این function خیلی خوبه اما اگر یه regulare expression بود خیلی بهتر می شد
سلام
طبق آن چیزی که از فرمول صحت کد ملی یادم هست،متاسفانه امکان ساختن regular expression وجود ندارد.
با آرزوی موفقیت
اقا قبلا یه بچه ها کلاسش رو نوشته بود . اما یادم نیست که کی بود. تو گوگل سرچ کنید. گیر می یاد
بیا عزیز. پیداش کردم:
http://tuts.zanjanlug.org/%
با سلام
همانطور که گفتم و در این کلاس هم می بینید هیچکدام بر اساس regex کار نمی کنه. اما نگاهش کردم بنظر اصولش رو رعایت کرده بود.
با ارزوی موفقیت
طبق خبر اعلام شده در لینک زیر اعداد یکسان برای کد ملی نامعتبر نیست
http://www.fardanews.com/fa/news/127747
دوست عزیز خدمتون با این کد میتونید صحت کد ملی رو مورد بررسی قرار بدید.
کد HTML:function checkCodeMeli(code) { var L=code.length; if(L<8 || parseInt(code,10)==0) return false; code=('0000'+code).substr(L+4-10); if(parseInt(code.substr(3,6),10)==0) return false; var c=parseInt(code.substr(9,1),10); var s=0; for(var i=0;i<9;i++) s+=parseInt(code.substr(i,1),10)*(10-i); s=s%11; return (s<2 && c==s) || (s>=2 && c==(11-s)); return true; } function check() { var c=document.getElementById("mellicode").value; if( checkCodeMeli(c)) $('#tick').show().animate(); else alert("کد ملی صحت ندارد"); $("#result").html('<input type="hidden" id="chekemelli" name="chekemelli" value="0">'); return false; }
آخرین ویرایش به وسیله aaaaaaaa1 : دوشنبه 23 فروردین 1395 در 04:58 صبح
پوزش یادم رفتن
این کد :
کد HTML:function checkCodeMeli(code) { var L=code.length; if(L<8 || parseInt(code,10)==0) return false; code=('0000'+code).substr(L+4-10); if(parseInt(code.substr(3,6),10)==0) return false; var c=parseInt(code.substr(9,1),10); var s=0; for(var i=0;i<9;i++) s+=parseInt(code.substr(i,1),10)*(10-i); s=s%11; return (s<2 && c==s) || (s>=2 && c==(11-s)); return true; }