reza11_2005
سه شنبه 29 تیر 1395, 09:14 صبح
با سلام
این کد صحت شناسه ملی:
function checkCodeMeli(code)
{
var L=code.length;
if(L<11 || parseInt(code,10)==0) return false;
if(parseInt(code.substr(3,6),10)==0) return false;
var c=parseInt(code.substr(10,1),10);
var d=parseInt(code.substr(9,1),10)+2;
var z=new Array(29,27,23,19,17);
var s=0;
for(var i=0;i<10;i++)
s+=(d+parseInt(code.substr(i,1),10))*z[i%5];
s=s%11;if(s==10) s=0;
return (c==s);
}
الان می خواهم تبدیلش کنم به کد سی شارپ دوستان می توانند من را راهنمایی بفرمایند
با تشکر
دلتنگ اسمان
سه شنبه 29 تیر 1395, 11:35 صبح
با سلام
این کد چک کردن کدملی در سی شارپ :
bool IsValidNationalCode(String nationalCode)
{
if (String.IsNullOrEmpty(nationalCode))
{ MessageBox.Show(" کد ملی صحیح نمی باشد"); return false; }
if (nationalCode.Length != 10)
{ MessageBox.Show(" تعداد ارقام کد ملی بیش از 10 رقم نمیتواند باشد"); return false; }
var regex = new Regex(@"\d{10}");
if (!regex.IsMatch(nationalCode))
{ MessageBox.Show(" کد ملی بصورت عددی می باشد"); return false; }
var allDigitEqual =
new[] { "0000000000", "1111111111", "2222222222", "3333333333", "4444444444", "5555555555",
"6666666666", "7777777777", "8888888888", "9999999999" };
if (allDigitEqual.Contains(nationalCode))
{ MessageBox.Show(" کد ملی صحیح نمی باشد"); return false; }
var chArray = nationalCode.ToCharArray();
var num0 = Convert.ToInt32(chArray[0].ToString()) * 10;
var num2 = Convert.ToInt32(chArray[1].ToString()) * 9;
var num3 = Convert.ToInt32(chArray[2].ToString()) * 8;
var num4 = Convert.ToInt32(chArray[3].ToString()) * 7;
var num5 = Convert.ToInt32(chArray[4].ToString()) * 6;
var num6 = Convert.ToInt32(chArray[5].ToString()) * 5;
var num7 = Convert.ToInt32(chArray[6].ToString()) * 4;
var num8 = Convert.ToInt32(chArray[7].ToString()) * 3;
var num9 = Convert.ToInt32(chArray[8].ToString()) * 2;
var a = Convert.ToInt32(chArray[9].ToString());
var b = (((((((num0 + num2) + num3) + num4) + num5) + num6) + num7) + num8) + num9;
var c = b % 11;
return (((c < 2) && (a == c)) || ((c >= 2) && ((11 - c) == a)));
}
در این سایت (http://www.m2h.nl/files/js_to_c.php) میتونید کدهای جاوااسکریپت رو به سی شارپ تبدیل کنید که کد تبدیل شده شما این میشه:
// Converted from UnityScript to C# at http://www.M2H.nl/files/js_to_c.php - by Mike Hergaarden
// Do test the code! You usually need to change a few small bits.
using UnityEngine;
using System.Collections;
public class MYCLASSNAME : MonoBehaviour {
void checkCodeMeli (code){
FIXME_VAR_TYPE L=code.length;
if(L<11 || int.Parse(code,10)==0) return false;
if(int.Parse(code.substr(3,6),10)==0) return false;
FIXME_VAR_TYPE c=int.Parse(code.substr(10,1),10);
FIXME_VAR_TYPE d=int.Parse(code.substr(9,1),10)+2;
FIXME_VAR_TYPE z=new Array(29,27,23,19,17);
FIXME_VAR_TYPE s=0;
for(FIXME_VAR_TYPE i=0;i<10;i++)
s+=(d+int.Parse(code.substr(i,1),10))*z[i%5];
s=s%11;if(s==10) s=0;
return (c==s);
}
}
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.