در بسیاری از نرم افزار ها تیاز به چک کردن درستی کد ملی است تا از اشتباهات کاربر در ثبت کد ملی مورد نظر در سیستم جلوگیری شود از این جهت توابعی را برای چک کردن درستی کد ملی به زبان های مختلف ارئه می نماییم
کد ملی شماره ای است 10 رقمی که از سمت چپ سه رقم کد شهرستان محل صدور شناسنامه ، شش رقم بعدی کد منحصر به فرد برای فرد دارنده شناسنامه در شهرستان محل صدرو و رقم آخر آن هم یک رقم کنترل است که از روی 9 رقم سمت چپ بدست می آید. برای بررسی کنترل کد کافی است مجدد از روی 9 رقم سمت چپ رقم کنترل را محاسبه کنیم
نمونه کد برسی کدملی بصورت جاوا اسکریپت :
var msg=""; function CheckMeliCode(meli_code) { if (meli_code.length == 10) { if (meli_code == '1111111111' || meli_code == '0000000000' || meli_code == '2222222222' || meli_code == '3333333333' || meli_code == '4444444444' || meli_code == '5555555555' || meli_code == '6666666666' || meli_code == '7777777777' || meli_code == '8888888888' || meli_code == '9999999999' || meli_code == '0123456789' ) { msg = 'كد ملي صحيح نمي باشد'; return false; } c = parseInt(meli_code.charAt(9)); n = parseInt(meli_code.charAt(0)) * 10 + parseInt(meli_code.charAt(1)) * 9 + parseInt(meli_code.charAt(2)) * 8 + parseInt(meli_code.charAt(3)) * 7 + parseInt(meli_code.charAt(4)) * 6 + parseInt(meli_code.charAt(5)) * 5 + parseInt(meli_code.charAt(6)) * 4 + parseInt(meli_code.charAt(7)) * 3 + parseInt(meli_code.charAt(8)) * 2; r = n - parseInt(n / 11) * 11; if ((r == 0 && r == c) || (r == 1 && c == 1) || (r > 1 && c == 11 - r)) { return true; } else { msg = 'كد ملي صحيح نمي باشد'; return false; } } else { msg = 'طول کد ملی وارد شده باید 10 کاراکتر باشد'; return false; } }
نمونه کد برسی کد ملی در C# :
public bool CheckMeliCode(string meli_code) { if (meli_code.Length == 10) { if (meli_code == "1111111111" || meli_code == "0000000000" || meli_code == "2222222222" || meli_code == "3333333333" || meli_code == "4444444444" || meli_code == "5555555555" || meli_code == "6666666666" || meli_code == "7777777777" || meli_code == "8888888888" || meli_code == "9999999999" || meli_code == "0123456789" ) { //Response.Write("كد ملي صحيح نمي باشد"); return false; } int c = Convert.ToInt16(meli_code.Substring(9,1)); int n = Convert.ToInt16(meli_code.Substring(0,1)) * 10 + Convert.ToInt16(meli_code.Substring(1,1)) * 9 + Convert.ToInt16(meli_code.Substring(2,1)) * 8 + Convert.ToInt16(meli_code.Substring(3,1)) * 7 + Convert.ToInt16(meli_code.Substring(4,1)) * 6 + Convert.ToInt16(meli_code.Substring(5,1)) * 5 + Convert.ToInt16(meli_code.Substring(6,1)) * 4 + Convert.ToInt16(meli_code.Substring(7,1)) * 3 + Convert.ToInt16(meli_code.Substring(8,1)) * 2; int r = n - (n / 11) * 11; if ((r == 0 && r == c) || (r == 1 && c == 1) || (r > 1 && c == 11 - r)) { //Response.Write(" کد ملی صحیح است"); return true; } else { //Response.Write("كد ملي صحيح نمي باشد"); return false; } } else { //Response.Write("طول کد ملی وارد شده باید 10 کاراکتر باشد"); return false; } }
نمونه کد برسی کد ملی در PHP :
function CheckMeliCode($meli_code) { if (strlen($meli_code) == 10) { if ($meli_code == '1111111111' || $meli_code == '0000000000' || $meli_code == '2222222222' || $meli_code == '3333333333' || $meli_code == '4444444444' || $meli_code == '5555555555' || $meli_code == '6666666666' || $meli_code == '7777777777' || $meli_code == '8888888888' || $meli_code == '9999999999' || $meli_code == '0123456789' ) { //echo 'كد ملي صحيح نمي باشد'; return false; } $c = substr($meli_code,9,1); $n = substr($meli_code,0,1) * 10 + substr($meli_code,1,1) * 9 + substr($meli_code,2,1) * 8 + substr($meli_code,3,1) * 7 + substr($meli_code,4,1) * 6 + substr($meli_code,5,1) * 5 + substr($meli_code,6,1) * 4 + substr($meli_code,7,1) * 3 + substr($meli_code,8,1) * 2; $r = $n - (int)($n / 11) * 11; if (($r == 0 && $r == $c) || ($r == 1 && $c == 1) || ($r > 1 && $c == 11 - $r)) { //echo ' کد ملی صحیح است'; return true; } else { //echo 'كد ملي صحيح نمي باشد'; return false; } } else { //echo 'طول کد ملی وارد شده باید 10 کاراکتر باشد'; return false; } }
دمو آنلاین : کلیک کنید
دیدگاهها