شروع گفتگوبا مشــــاوریــــن در تلگـــرام@sourcesaazbot
کانال تلگرام سایت صفحه اینستاگرام سایت راهنمای خرید از سایت
در آمدزایی
سورس مدیرت گروه حرفه ای و کامل
سورس ساز
آیا میدانید …
سورس ساز

سورس ساز

سورس فروشگاه ساز پیشرفته
فروشگاه ساز
خرید هاست ربات

الگوریتم و متد تشخیص صحت کد ملی در PHP و جاوا اسکریپت

الگوریتم و متد تشخیص صحت کد ملی در PHP و جاوا اسکریپت

https://sourcesaaz.ir/wp-content/uploads/2019/08/4400.jpg

سلام به تمامی کاربران سورس ساز

امروزه در اکثر نرم افزارهای تولیدی نیاز به استفاده از کد ملی به عنوان یک مشخصه منحصر به فرد برای اطلاعات فردی می باشد.

از طرفی متاسفانه در حال حاضر هیچ الگوریتمی برای تشخیص صحت کد ورودی در اختیار برنامه نویسان وجود ندارد.

خیرا با توجه به نیاز خودم به کنترل صحت کد ورودی الگوریتم مربوط به کنترل صحت کد ملی را بدست آوردم و چون مطمئن هستم افراد زیادی هم همین نیاز را دارند روال انجام کار را در این مقال توضیح می دهم

کد ملی شماره ای است ۱۰ رقمی که از سمت چپ سه رقم کد شهرستان محل صدور شناسنامه ، شش رقم بعدی کد منحصر به فرد برای فرد دارنده شناسنامه در شهرستان محل صدرو و رقم آخر آن هم یک رقم کنترل است که از روی ۹ رقم سمت چپ بدست می آید. برای بررسی کنترل کد کافی است مجدد از روی ۹ رقم سمت چپ رقم کنترل را محاسبه کنیم

از آنجایی که درسیستم کد ملی معمولا قبل از کد  تعدادی صفر وجود دارد.(رقم اول و رقم دوم از سمت چپ کد ملی ممکن است صفر باشد) و در بسیاری از موارد ممکن است کاربر این صفرها را وارد نکرده باشد و یا نرم افزار این صفرها را ذخیره نکرده باشد بهتر است قبل از هر کاری در صورتی که طول کد بزرگتر مساوی ۸ و کمتر از ۱۰ باشد  به تعداد لازم (یک تا دو تا صفر) به سمت چپ عدد اضافه کنید. ساختار کد ملی در زیر نشان داده شده است

ساختار کد ملی
ارقام کد رقم کنترل ۹ رقم سمت چپ کد ملی
موقعیت ۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰

۱- برای محاسبه رقم کنترل از روی سایر ارقام ، هر رقم را در موقعیت آن ضرب کرده و حاصل را با هم جمع می کنیم.

۲- مجموع بدست آمده از مرحله یک را بر ۱۱ تقسیم می کنیم

۳- اگر باقیمانده کمتر از ۲ باشد ، رقم کنترل باید برابر باقیمانده باشد در غیر اینصورت رقم کنترل باید برابر یازده منهای باقیمانده باشد

مثال : آیا کد ۷۷۳۱۶۸۹۹۵۱ یک کد ملی معتبر است؟

برای این منظور کد

ساختار کد ملی
ساختار کد رقم کنترل ۹ رقم سمت چپ کد ملی
ارقام کد ۱ ۵ ۹ ۹ ۸ ۶ ۱ ۳ ۷ ۷
موقعیت ۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰
محاسبه حاصل ضرب ۱۰ ۲۷ ۳۶ ۴۰ ۳۶ ۷ ۲۴ ۶۳ ۷۰

حاصل جمع ضرب ارقام ۲ الی ۱۰ را در موقعیت آنها محاسبه می کنیم

۷*۱۰+۷*۹+۳*۸+۱*۷+۶*۶+۸*۵+۹*۴+۹*۳+۵*۲=۳۱۳

۳۱۳÷۱۱=۲۸ و R=5

چون باقیمانده برابر ۵ و بزرگتر مساوی ۲ است پس باید رقم کنترل این کد برابر ۶ ( یازده منهای ۵ برابر ۶)باشد.

با دقت در کد متوجه می شویم که رقم کنترل ورودی برابر ۱ است پس کد مورد نظر به عنوان یک کد معتبر قابل قبول نیست.

قطعه کد چک صحت کد ملی در PHP


function _custom_check_national_code($code)
{
if(!preg_match('/^[0-9]{10}$/',$code))
return false;
for($i=0;$i<10;$i++)
if(preg_match('/^'.$i.'{10}$/',$code))
return false;
for($i=0,$sum=0;$i<9;$i++)
$sum+=((10-$i)*intval(substr($code, $i,1)));
$ret=$sum%11;
$parity=intval(substr($code, 9,1));
if(($ret<2 && $ret==$parity) || ($ret>=2 && $ret==11-$parity))
return true;
return false;
}

قطعه کد چک صحت کد ملی در Java Script


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;
}
{

امیدواریم از این آموزش لذت کافی را برده باشید خوشحال میشویم نظر خود را برای ما ارسال کنید .

دسته بندی : آموزش تلگرام , وبلاگ
نویسنده : سورس ساز
تاریخ انتشار : ۲۷ / ۰۵ / ۱۳۹۸
بازدید : 61 بار
لینک کوتاه : https://sourcesaaz.ir/?p=2318
مطلب مفیدی برای شما بود ؟؟ پس به اشتراک بگذارید برای دوستانتان

مطالب مرتبط ...

مشاهده وبلاگ

۱۰ سامانه پیامکی برتر ایران

10 سامانه پیامک برتر

اگر شما به دنبال سامانه پیامکی خوب میگردید و نمیتوانید آن را انتخاب کنید پس پیشنهاد میشود این مطلب را دنبال کنید . امروز برای شما ۱۰ سامانه پیامکی برتر ...

ادامه توضیحات

آموزش ساخت انیمیشن SVG

آموزش ساخت انیمیشن SVG

با سلام خدمت شما . امروز آموزش ساخت انیمیشن SVG را برای شما عزیزان آماده کرده ایم . امروز این آموزش را آماده کرده ایم تا همگان از این مطلب آموزشی ...

ادامه توضیحات

۷ مزیت داشتن وب سایت شرکتی

۷ مزیت داشتن وب سایت شرکتی

چرا داشتن یک وب سایت شرکتی در موفقیت شما نقش بسیار مهمی دارد؟ امروزه که اکثر کسب و کارها به صورت اینترنتی فعالیت می کنند، داشتن یک وب سایت شرکتی ضروری ...

ادامه توضیحات

تبلیغات سایت

مشاهده تعرفه


دیدگاه کاربران ...

    لطفا قبل از ارسال سئوال یا دیدگاه سئوالات متداول را بخونید.
    جهت رفع سوالات و مشکلات خود از سیستم پشتیبانی سایت استفاده نمایید .
    دیدگاه ارسال شده توسط شما ، پس از تایید توسط مدیران سایت منتشر خواهد شد.
    دیدگاهی که به غیر از زبان فارسی یا غیر مرتبط با مطلب باشد منتشر نخواهد شد.

    دیدگاه خود را بیان کنید