سلام دوستان
من خیلی برای فرمول برسی کد ملی جاوا اسکریپت سرچ کردم ولی متاسفانه همه اونهایی که دیدم در عمل کار نمی کردند.
ممنون میشم دوستان ماهر تر ، بتونن فرمولی را بدن و البته تست شده .
مرسی
سلام دوستان
من خیلی برای فرمول برسی کد ملی جاوا اسکریپت سرچ کردم ولی متاسفانه همه اونهایی که دیدم در عمل کار نمی کردند.
ممنون میشم دوستان ماهر تر ، بتونن فرمولی را بدن و البته تست شده .
مرسی
لطفا جاواسکریپت نویسی ها کمک کنند ؟
کسی خونه نیست ؟
سلام
باید چندتا دستور شرطی بنویسی تا اطلاعات را چک کنه
مثلا تعداد ارقام و اینکه حروف یا کارکتر دیگه ای غیر عدد نزده باشه
ممنون ولی دوستان آماده ندارند ؟
من یه کد دارم ولی با همه مرورگرها غیر از Internet Explorer مشکل داره. اون هم اینه که وقتی دکمه ارسال رو توی بقیه مرورگر ها میزنم از کد ملی خطا نمی گیره (اگر اشتباه باشه) ولی توی اینترنت اکسپلورر خطا می گیره (اگر کد ملی اشتباه باشه) دوستان اگر مشکل راحل بکنند کد خوبی هست.
برای بررسی صحت کد ملی لازمه که checksum عددهای اول تا نهم محاسبه بشه
و صرفا بررسی عددها و فرمت کفایت نمیکنه
function checkMelliCode(meli_code) {
if (meli_code.length == 10) {
if (meli_code == '1111111111' ||
meli_code == '0000000000' ||
meli_code == '2222222222' ||
meli_code == '3333333333' ||
meli_code == '4444444444' ||
meli_code == '5555555555' ||
meli_code == '6666666666' ||
meli_code == '7777777777' ||
meli_code == '8888888888' ||
meli_code == '9999999999') {
return false;
}
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)) {
return true;
} else {
return false;
}
} else {
return false;
}
}
آخرین ویرایش به وسیله AMIBCT : پنج شنبه 06 مرداد 1390 در 18:29 عصر
ممنون ولی این کد را من گفتم اول تست کنید بعد بگین
این کد که کار نمی کنه ؟! ایرادات داره !
لطفا تست کنید ؟
خودتون متوجه شدید که منظورتون چیه؟
این الگوریتم بررسی صحت کد ملی است
اگه شما دوست داری کد ملی رو از روی قیافه بررسی کنی و براتون اهمیت نداره که کد وارد شده درسته یا غلطه
هر طوری دوست داری برنامه بنویس
دوست عزیز این یه تابع ساده هستاین کد که کار نمی کنه ؟! ایرادات داره !
اگه کد درست باشه مقدار بازگشتی true خواهد بود
کد دو تا اشکال کوچیک داشت که اصلاحش کردم
دیگه از داخل تابع پیامی نشون داده نمیشه
و خودتون مقدار بازگشتی رو باید بررسی و در صورت نیاز پیام هشدار نشون بدید
با تغییرات جدید، به جای شیء input، متن کد ملی رو باید به تابع ارسال کنید
آخرین ویرایش به وسیله AMIBCT : چهارشنبه 05 مرداد 1390 در 09:57 صبح
بله ، می دونم ،ممنون از راهنمایی
ولی این کد جواب نمی دهد
مثلا شما در یک فایل html تست کنید و یه کد اشتباه بدید ، می بینید که آلرت یا هشدار نمیده !
ممنونم .
دوست عزیز شما خودت جاوا اسکریپت بلدی؟؟؟
یک کد بنویسید که طول داده ی ورودی اگر کمتر از 11 بود اعلام کنه. با text.lenght
یک کد هم بنویسید که هر کجا کارکتری غیر از عدد بود اعلام کنه با x.indexOf("")
هر وقت هم مثلا 1111111 یا 555555 وارد شد اعلام کنه
همین تمام شد
دیگه شما نمی توانی بیای از ثبت اسناد تاییدیه بگیری که این کد درسته یا نه.
هر کد دیگه ای هم باشه همین شکلیه مثل کد پستی شماره شناسنامه و....
نه آخه به اون راحتی هم نیست واگر نه راحت می نوشتمش ، ولی فرمولش حرفه ای تر از این حرفاست ؟
من جاوا اسکریپت بلدم ولی یه جاهاییش گیر کردم ، واسه همین خواستم دوستان کمک کنند .
دوست عزیز کد مشکلی نداره
تنها اشکالی که دیدم یه { در انتهای تابع جا مونده بود
این هم یه نمونه از استفاده که به خوبی کار میکنه و کد ملی رو هم کیلویی ( فقط با بررسی شمارهها و طول )بررسی نمیکنه
اگه باز با این هم مشکلی دارید
نشون میده که باید مطالعهتون رو بیشتر کنید و بعد شروع کنید به برنامهنویسی
توی برنامهنویسی مشکلات زیادی پیش میاد که اگه اطلاعات پایهتون ضعیف باشه به جایی نمیرسید و زود ناامید میشید
کد HTML:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <meta http-equiv="content-language" content="fa-IR" /> <title>AMIB</title> <script type="text/javascript">//<!-- function checkMelliCode(meli_code) { if (meli_code.length == 10) { if (meli_code == '1111111111' || meli_code == '0000000000' || meli_code == '2222222222' || meli_code == '3333333333' || meli_code == '4444444444' || meli_code == '5555555555' || meli_code == '6666666666' || meli_code == '7777777777' || meli_code == '8888888888' || meli_code == '9999999999') { return false; } 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)) { return true; } else { return false; } } else { return false; } } //--> </script> </head> <body style="direction: rtl;"> <p> <input id="national_code" type="text" /><br /> <button type="button" id="check" onclick="checkMelliCode( document.getElementById( 'national_code' ).value ) ? alert ( 'OK' ): alert ( 'Error' );">بررسی کد ملی</button> </p> </body> </html>
برای دوستانی که جدید به این تاپیک میان
یه نفر زحمت کشیده این کارو توی زبان های برنامه نویسی مختلف انجام داده
https://gist.github.com/ebraminio/5292017