راکت
حل شده

اعتبار سنجی کدملی با php

7 پاسخ

@mohaligateway
@eniack
@mhyeganeh
@ali.bayat
چطوری کد ملی رو اعتبار سنجی کنیم

ثبت پرسش جدید

پاسخ‌ها

7
علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

بهترین پاسخ

از این تابع میتونی استفاده کنی

function check_national_code($value)
{
    if(!preg_match('/^[0-9]{10}$/',$value)) {
        return (bool) false;
    }

    for($i=0;$i<10;$i++)
        if(preg_match('/^'.$i.'{10}$/',$value)) {
            return (bool) false;
        }

    for($i=0,$sum=0;$i<9;$i++)
        $sum+=((10-$i)*intval(substr($value, $i,1)));
        $ret=$sum%11;
        $parity=intval(substr($value, 9,1));
        if(($ret<2 && $ret==$parity) || ($ret>=2 && $ret==11-$parity)) {
            return (bool) true;
        }

    return (bool) false;

}
moha li
moha li
@mohaligateway

تخصص: توسعه دهنده لاراول و Vue

سلام
شماره کد ملی دارای ده رقم در سه گروه ۳، ۶ و ۱ رقمی است که سه رقم اول مربوط به محل تولد می‌باشد. در کارت بین سه گروه رقم‌ها با خط تیره فاصله‌گذاری شده‌است ولی معمولا هنگام درج مشخصات و کد ملی نیازی به جداگانه‌نویسی ارقام وجود ندارد و از چپ به راست ده رقم پشت سرهم نوشته می‌شوند.
کد ملی شماره‌ای است ۱۰ رقمی که از سمت چپ سه رقم کد شهرستان محل صدور شناسنامه، شش رقم بعدی کد منحصربه‌فرد برای فرد دارنده شناسنامه در شهرستان محل صدور و رقم آخر آن هم یک رقم کنترل است که از روی ۹ رقم سمت چپ به‌دست می‌آید. برای راستی‌آزمایی کد کافی است کد ملی خود را بدون خط تیره در فیلد زیر وارد کرده تا صحت کد ملی مشخص گردد. درصورتی که کد با صفر شروع شده حتما عدد صفر هم وارد شود.
@ftp

فرشید مرادی
فرشید مرادی
@eniack

تخصص: noob

سلام دوست من ،
این مورد رو داخل گوگل سرچ کنید حداقل ۲۰ نتیجه خوب میاره واستون که میتونید استفاده کنید و توضیحاتشون رو بخونید ،
اینم خودش یک مهارت هست که چیزی که نمیدونید رو برید دنبالش سرچ کنید و بدست بیارید ،
با احترام🙏

شاید پاسخ شما همین‌جا باشد

امیرحسین عنبری
امیرحسین عنبری
@amiranbari33

تخصص: Web application developer

سلام دوست عزیز.باید اول یک RULE ایجاد کنی و سپس این کد رو بزار و استفاده کن :

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

تخصص: Back-End Developer

چرا این فانکشن، true و false رو cast کرده؟ @ali.bayat

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

@muhammad
این کد داخل یک پکیج ولیدیشن های فارسی هست
به نظر من هم زیاده رویه که true & false رو دوباره bool کنی

حسن حیدریان
حسن حیدریان
@mighatenoor

تخصص: رابط

سلام
در فرم المنتور چطور میشه ایجاد کرد؟

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام