نمایش نتایج 1 تا 12 از 12

نام تاپیک: صحت درست بودن کد ملی با جاوا اسکریپت

  1. #1

    Question صحت درست بودن کد ملی با جاوا اسکریپت

    یک کد در پیدا کردم که با اون میشه کد ملی رو چک کرد اما مشکلم اینه که میخوام به کد دیگه ای ادقامش کنم اما نمیدونم چطوری ؟

    کد چک کردن کد ملی:

    <script type="text/javascript">
    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), 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));
    }
    </script>
    <script type="text/javascript">
    function checkMelliCode(meli_code)
    {
    if (meli_code.length == 10)
    {
    if(meli_code=='1111111111' || meli_code=='2222222222' || meli_code=='3333333333' || meli_code=='4444444444' || meli_code=='5555555555' || meli_code=='6666666666' || meli_code=='7777777777' || meli_code=='8888888888' || meli_code=='9999999999' )
    {
    alert(11);
    }else{
    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))
    {
    alert('کد ملی صحیح می باشد');
    }
    else
    {
    alert('کد ملی وارد شده معتبر نمی باشد');
    }
    }
    }

    }
    </script>
    </head>
    <body>
    <font color="red" style="cursor:pointer;" onclick="checkMelliCode('1234567891');">show</font>
    </body>
    </html>


    کد خودم رو به صورت زیر نوشتم اما 2 تا مشکل وجود داره
    1- اگر عدد های وارد شده در تکسباکس کمتر از 10 رقم باشده کد اجرا نمیشه
    2- وقتی که کد 10 رقمی وارد میشه و معتبر نیست پیغام خطا به نمایش در می آید اما عملیات متوقف نمیشه و اطلاعات به دیتابیس ارسال میشه

    function validateForm(){
    var field = document.forms["form1"]["textfield1"].value;
    if (document.getElementById('textfield1').value == ''){
    document.getElementById('name-error').innerHTML = 'نام و نام خانوادگی مالک کالا را وارد نمایید';
    return false;
    }
    else{
    document.getElementById('name-error').innerHTML = '';
    }
    if(document.getElementById('textfield2').value == ''){
    document.getElementById('melli-error').innerHTML = 'کد ملی مالک کالا را وارد نمایید!';
    return false;
    }
    else{
    document.getElementById('melli-error').innerHTML = '';
    }
    if(document.getElementById('textfield4').value == ''){
    document.getElementById('tel-error').innerHTML = 'لطفا تلفن ثابت را وارد نمایید';
    return false;
    }
    else{
    document.getElementById('tel-error').innerHTML = '';
    }
    if(document.getElementById('textfield5').value == ''){
    document.getElementById('mobil-error').innerHTML = 'لطفا تلفن همراه را وارد نمایید';
    return false;
    }
    else{
    document.getElementById('mobil-error').innerHTML = '';
    }
    if(document.getElementById('textfield6').value == ''){
    document.getElementById('post-error').innerHTML = 'لطفا کد پستی را وارد نمایید';
    return false;
    }
    else{
    document.getElementById('post-error').innerHTML = '';
    }
    if(document.getElementById('textfield7').value == ''){
    document.getElementById('address-error').innerHTML = 'لطفا آدرس مالک کالا را وارد نمایید';
    return false;
    }
    else{
    document.getElementById('address-error').innerHTML = '';
    }
    email=document.form1.textfield3.value;
    var atpos=email.indexOf("@");
    var dotpos=email.lastIndexOf(".");
    if(email!="")
    {
    if(atpos<1||dotpos<atpos+2||dotpos +2>=x.length)
    {
    document.getElementById('mail-error').innerHTML ="لطفا ايميل آدرس را صحيح وارد كنيد";
    return false;
    }
    }
    else{
    document.getElementById('mail-error').innerHTML = '';
    }

    meli_code=document.form1.textfield2.value;
    if (meli_code.length == 10)
    {
    if(meli_code=='1111111111' || meli_code=='2222222222' || meli_code=='3333333333' || meli_code=='4444444444' || meli_code=='5555555555' || meli_code=='6666666666' || meli_code=='7777777777' || meli_code=='8888888888' || meli_code=='9999999999' )
    {
    alert(11);
    }else{
    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))
    {
    document.getElementById('melli-error').innerHTML ="";
    }
    else
    {
    document.getElementById('melli-error').innerHTML ="کد ملی وارد شده معتبر نمی باشد";
    }
    }
    }

    }

    آخرین ویرایش به وسیله hamidhassas : شنبه 10 فروردین 1392 در 21:55 عصر

  2. #2

    نقل قول: صحت درست بودن کد ملی با جاوا اسکریپت


  3. #3

    نقل قول: صحت درست بودن کد ملی با جاوا اسکریپت

    آی آر نیک اسکریپتشو داره
    میتونی بکشی بیرون
    البته مطمعن نیسم کلاینت باشه

  4. #4

    نقل قول: صحت درست بودن کد ملی با جاوا اسکریپت


  5. #5

    نقل قول: صحت درست بودن کد ملی با جاوا اسکریپت

    من که سر در نمیارم گه چکار باید بکنم

  6. #6

    نقل قول: صحت درست بودن کد ملی با جاوا اسکریپت

    توی سایت nic.ir، توی بخش ثبت نامش درست بودن کد ملی چک میشه. البته الان رفتم چک کردم و دیدم که کدش سمت سروره! :))
    اما یه سوال :

    <font color="red" style="cursor:pointer;" onclick="checkMelliCode('1234567891');">show</font>

    onclick توی تگ فونت جواب میده؟


    function checkMelliCode(meli_code)
    {
    if (meli_code.length == 10)
    {
    if(meli_code=='1111111111' || meli_code=='2222222222' || meli_code=='3333333333' || meli_code=='4444444444' || meli_code=='5555555555' || meli_code=='6666666666' || meli_code=='7777777777' || meli_code=='8888888888' || meli_code=='9999999999' )
    {
    alert(11);
    }else{
    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))
    {
    alert('کد ملی صحیح می باشد');
    }
    else
    {
    alert('کد ملی وارد شده معتبر نمی باشد');
    }
    }
    }

    }


    توی کد بالا:
    1111111111 و 2222222222 و ... رو با ریجکس چک کن.
    کد به نظر دسته از لحاظ سینتکس/ اما از لحاظ الگوریتم نمی دونم!
    امتحانش کن با یه دکمه و تکست باکس...

  7. #7

    نقل قول: صحت درست بودن کد ملی با جاوا اسکریپت

    پست دوبار ثبت شد...
    امکان حذفم که نیست...
    آخرین ویرایش به وسیله sali444 : پنج شنبه 15 فروردین 1392 در 18:26 عصر دلیل: پست دو بار ثبت شد

  8. #8

    نقل قول: صحت درست بودن کد ملی با جاوا اسکریپت

    وقتی که کد 10 رقمی وارد میشه و معتبر نیست پیغام خطا به نمایش در می آید اما عملیات متوقف نمیشه و اطلاعات به دیتابیس ارسال میشه

  9. #9

    نقل قول: صحت درست بودن کد ملی با جاوا اسکریپت


  10. #10

    نقل قول: صحت درست بودن کد ملی با جاوا اسکریپت

    function checkMelliCode(codeMelli) {
    if (codeMelli.length == 10) {
    switch (codeMelli) {
    case '0000000000':
    case '1111111111':
    case '2222222222':
    case '3333333333':
    case '4444444444':
    case '5555555555':
    case '6666666666':
    case '7777777777':
    case '8888888888':
    case '9999999999':
    return false;
    }
    var c = parseInt(codeMelli.charAt(9));
    var sum = parseInt(codeMelli.charAt(0)) * 10 +
    parseInt(codeMelli.charAt(1)) * 9 +
    parseInt(codeMelli.charAt(2)) * 8 +
    parseInt(codeMelli.charAt(3)) * 7 +
    parseInt(codeMelli.charAt(4)) * 6 +
    parseInt(codeMelli.charAt(5)) * 5 +
    parseInt(codeMelli.charAt(6)) * 4 +
    parseInt(codeMelli.charAt(7)) * 3 +
    parseInt(codeMelli.charAt(8)) * 2;
    r = sum - parseInt(sum / 11) * 11;
    return (r == 0 && r == c) || (r == 1 && c == 1) || (r > 1 && c == 11 - r);
    }
    return false;
    }

  11. #11

    نقل قول: صحت درست بودن کد ملی با جاوا اسکریپت

    سلام پست پایین را مشاهده کنید

  12. #12
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1393
    محل زندگی
    ایران
    پست
    487

    نقل قول: صحت درست بودن کد ملی با جاوا اسکریپت


    var isValidNationalCode = function (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);
    };

تاپیک های مشابه

  1. بررسی صحت کد ملی در جاوا اسکریپت
    نوشته شده توسط erfannew در بخش JavaScript و Framework های مبتنی بر آن
    پاسخ: 14
    آخرین پست: شنبه 26 مهر 1393, 10:37 صبح
  2. فعال بودن یا نبودن جاوا اسکریپت روی مرورگر
    نوشته شده توسط emad_67 در بخش ASP.NET Web Forms
    پاسخ: 10
    آخرین پست: جمعه 17 آبان 1387, 11:12 صبح
  3. فعال بودن جاوا اسکریپت
    نوشته شده توسط black2 در بخش PHP
    پاسخ: 5
    آخرین پست: پنج شنبه 14 شهریور 1387, 05:40 صبح
  4. فعال بودن جاوا اسکریپت
    نوشته شده توسط black2 در بخش طراحی وب (Web Design)
    پاسخ: 4
    آخرین پست: چهارشنبه 13 شهریور 1387, 12:10 عصر
  5. نحوه درست کردن منو در جاوا اسکریپت
    نوشته شده توسط near_86 در بخش طراحی وب (Web Design)
    پاسخ: 1
    آخرین پست: پنج شنبه 10 خرداد 1386, 08:23 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •