PDA

View Full Version : صحیح وارد شدن کدملی



hajbhenam
سه شنبه 03 دی 1392, 10:41 صبح
سلام میخوام بدون کسی reqular expersion برای چک کردن صحت کد ملی نداره؟؟؟؟؟؟:گریه:

bomb23
سه شنبه 03 دی 1392, 10:46 صبح
خب کد ملی فک کنم حتما باید ده رقم باشه چک کن طولش بیشتر یا کمتر از ده نباشه و فقطم عدد باشه.

hajbhenam
سه شنبه 03 دی 1392, 10:57 صبح
نه فرمول داره برادر:لبخندساده:

Hasan_zarei
سه شنبه 03 دی 1392, 11:21 صبح
سلام

این نمونه کد جاوا برای چک کردن صحت کدملیه و چون asp بلدنیستم الگوریتمش میزارم
function checkMelliCode(varmellicode)
{
var meli_code;
meli_code=varmellicode.value;
if (meli_code.length == 10)
{
if(meli_code==’۱۱۱۱۱۱۱۱۱۱′ ||
meli_code==’۰۰۰۰۰۰۰۰۰۰′ ||
meli_code==’۲۲۲۲۲۲۲۲۲۲′ ||
meli_code==’۳۳۳۳۳۳۳۳۳۳′ ||
meli_code==’۴۴۴۴۴۴۴۴۴۴′ ||
meli_code==’۵۵۵۵۵۵۵۵۵۵′ ||
meli_code==’۶۶۶۶۶۶۶۶۶۶′ ||
meli_code==’۷۷۷۷۷۷۷۷۷۷′ ||
meli_code==’۸۸۸۸۸۸۸۸۸۸′ ||
meli_code==’۹۹۹۹۹۹۹۹۹۹′ )
{
alert(“کد ملی صحیح نمی باشد”);
objcode.focus();
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
{
alert(“کد ملی صحیح نمی باشد”);
objcode.focus();
return true;
}
}
else
{
return true;

Hasan_zarei
سه شنبه 03 دی 1392, 11:22 صبح
اینم الگوریتمش::

دهمین رقم شماره ملی را ( از سمت چپ ) به عنوان A در نظر می گیریم.

یک مقدار B در نظر می گیریم و آن را برابر با =

(اولین رقم * ۱۰) + ( دومین رقم * ۹ ) + ( سومین رقم * ۸ ) + ( چهارمین رقم * ۷ ) + ( پنجمین رقم * ۶) + ( ششمین رقم * ۵ ) + ( هفتمین رقم * ۴ ) + ( هشتمین رقم * ۳ ) + ( نهمین رقم * ۲ )

قرار می دهیم.

مقدار C را برابر با = B – Int(B/11)*11 قرار می دهیم.

اگر مقدار C برابر با صفر باشد و مقدار A برابر C باشد کد ملی صحیح است.

اگر مقدار C برابر با ۱ باشد و مقدار A برابر با ۱ باشد کد ملی صحیح است.

اگر مقدار C بزرگتر از ۱ باشد و مقدار A برابر با ۱۱ – C باشد کد ملی صحیح است.