جهت ورود به تالار گفتمان سایت کلیک کنید


تابع چک کردن صحت کد ملی ( جاوا اسکریپت و PHP )

در اکثر پروژه های بزرگ که دارای محوریت ثبت نام کاربر هستند , وارد کردن صحیح ک ملی بسیار مهم و الزامی می باشد .

شاید برایتان جالب باشد که بدانید کد ملی 10 رقمی , دارای الگوریتم خاصی می باشد و براحتی می توان کد ملی واقعی را از کد ملی جعلی و یا همان غیر واقعی تشخیص داد .

در این پست از وب سایت اسکریپت دات کام , 2 تابع ساده جاوا اسکریپت و php برای شما دوستان آماده ساخته ام که براحتی می توانید در پروژه های خود استفاده نمایید .

تابع چک کردن صحت کد ملی ( جاوا اسکریپت و PHP )

تابع جاوا اسکریپت :

function vmsNationalCode(input) {
    if (!/^\d{10}$/.test(input) 
	|| input=='0000000000'
	|| input=='1111111111'
	|| input=='2222222222'
	|| input=='3333333333'
	|| input=='4444444444'
	|| input=='5555555555'
	|| input=='6666666666'
	|| input=='7777777777'
	|| input=='8888888888'
	|| input=='9999999999')
        return false;
    var check = parseInt(input[9]);
    var sum = 0;
    var i;
    for (i = 0; i < 9; ++i) {
        sum += parseInt(input[i]) * (10 - i);
    }
    sum %= 11;
    return (sum < 2 && check == sum) || (sum >= 2 && check + sum == 11);
}

برای فراخوانی تابع بالا میتوانید به صورت زیر عمل کنید : ( به عنوان مثال میخواهیم کد ملی 0011499613 را بررسی کنیم ) :

vmsNationalCode('0011499613');

حال اگر کد ملی اشتباه باشد False و اگر صحیح باشد True برگردانده می شود .

تابع php :

function vmsNationalCode($input) {
    if (!preg_match("/^\d{10}$/", $input)
	|| $input=='0000000000'
	|| $input=='1111111111'
	|| $input=='2222222222'
	|| $input=='3333333333'
	|| $input=='4444444444'
	|| $input=='5555555555'
	|| $input=='6666666666'
	|| $input=='7777777777'
	|| $input=='8888888888'
	|| $input=='9999999999') {
        return false;
    }
    $check = (int) $input[9];
    $sum = array_sum(array_map(function ($x) use ($input) {
        return ((int) $input[$x]) * (10 - $x);
    }, range(0, 8))) % 11;
    return ($sum < 2 && $check == $sum) || ($sum >= 2 && $check + $sum == 11);
}

برای فراخوانی تابع بالا میتوانید به صورت زیر عمل کنید : ( به عنوان مثال میخواهیم کد ملی 0011499613 را بررسی کنیم ) :

vmsNationalCode('0011499613');

حال اگر کد ملی اشتباه باشد False و اگر صحیح باشد 1 برگردانده می شود .

گرداوری و آموزش : وحید مجیدی

پخش اختصاصی

جهت تبادل گفتگو و حل مشکلات در باره این موضوع , کلیک کنید

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

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