נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
בניית אתרים
RSS UnderWarrior Forums : RSS בניית אתרים
נושא

נושא: בעיה|ניסיון לכתוב בדיקת תקינות תעודת זהות

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
karel_or
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 29 March 2007
משתמש: מנותק/ת
הודעות: 1
נשלח בתאריך: 29 March 2007 בשעה 12:05 | IP רשוּם
ציטוט karel_or

ניסיתי לכתוב קוד שאמור לתת לי את ספרת הביקורת של מספר תעודת זהות בן 8 ספרות, אבל זה לא עובד לי משום מה!
(בקוד הזה הספרה 8 אמורה להיות מוחזרת.)
כאן מסבירים איך לחשב את ספרת הביקורת:
http://news.nana.co.il/Article/?ArticleID=188652
הנה הקוד:

קוד:

<SCRIPT language="javascript">
function calc(id)
{
if(id == "" || isNaN(id))
alert("זה לא מספר");
if(id % 1 != 0)
alert("רק מספרים שלמים בבקשה");
if(id.length != 8)
alert("האורך צריך להיות 8");
var IDTouch=id;//מחרוזת
var sum=0;
var bigger;
for (var i=0;i<8;i++)
{
bigger=parseInt(IDTouch.substring(0,1));
if (i%2 != 0)
     sum+=bigger;
else
{
     bigger*=2;
     if ((bigger >= 10) && (bigger <= 99))
      sum+=bigger/10+bigger%10;
     else
      sum+=bigger;
}
IDTouch=IDTouch.substring(0,IDTouch.length-1);
}
if (sum%10 == 0)
alert(id+"-_-"+sum);
else
{
bigger=(sum/10+1)*10;
bigger-=sum;
alert(id+"-"+bigger);
}
}
</SCRIPT>

מה הבעיה??

בבקשה תנסו להבין את מה שכתבתי זה ממש לא מסובך!
תודה!

נ.ב: אסור לי להשתמש ב REGEX

חזרה לתחילת העמוד הצג את כרטיס החבר של karel_or חפש הודעות אחרות של karel_or
 
SBD
פורומיסט על
פורומיסט על
סמל אישי

הצטרף / הצטרפה: 13 January 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 1194
נשלח בתאריך: 29 March 2007 בשעה 13:38 | IP רשוּם
ציטוט SBD

הנה לך קוד ב-VB שבודק את הנכונות של ת.ז, אני חושב שלא ממש בעיה להוציא ממנו שהוא ימצא לבד את הספרה האחרונה...

קוד:

Public Function isID(ID As Variant) As Boolean
    ID = val(ID)
    While Len(ID) < 9
        ID = "0" & ID
    Wend

    Dim i%
    Dim sum%: sum = 0
    Dim digit%
    For i = 1 To 9
        digit = Strings.Mid$(ID, i, 1)
        If (i Mod 2) = 0 Then
            If digit >= 5 Then
                digit = 2 * digit - 9
            Else
                digit = digit * 2
            End If
        End If
        sum = sum + digit
    Next i
   
    isID = (sum Mod 10) = 0
End Function



__________________
~ Nobody Is Perfect, I'm Nobody ~
פורומים
חזרה לתחילת העמוד הצג את כרטיס החבר של SBD חפש הודעות אחרות של SBD בקר בדף הבית של SBD
 
שי
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 31 August 2009 בשעה 01:11 | IP רשוּם
ציטוט שי

היי אני מחפש פתרון זהה אך מימוש באמצעות regular expression

יש למשהו ניסיון או מקור/הפניה לנושא

חזרה לתחילת העמוד הצג את כרטיס החבר של שי חפש הודעות אחרות של שי בקר בדף הבית של שי
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

קפיצה לפורום
אינך יכול/ה לשלוח נושאים חדשים בפורום זה
אינך יכול/ה להגיב לנושאים בפורום זה
אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה
אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה
אינך יכול/ה לצור סקרים בפורום זה
אינך יכול/ה להצביע בסקרים בפורום זה