بررسی صحت کد ملی در زبان های برنامه نویسی JavaScript و Php و C#.net

در بسیاری از نرم افزار ها تیاز به چک کردن درستی کد ملی است تا از اشتباهات کاربر در ثبت کد ملی مورد نظر در سیستم جلوگیری شود از این جهت توابعی را برای چک کردن درستی کد ملی به زبان های مختلف ارئه می نماییم

کد ملی شماره ای است 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;       
   }
}

 

 

دمو آنلاین : کلیک کنید

 

 

دیدگاه‌ها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Time limit is exhausted. Please reload the CAPTCHA.