לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

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



  #1  
ישן 24-03-2007, 15:47
  karel_or karel_or אינו מחובר  
 
חבר מתאריך: 12.07.05
הודעות: 68
[בעיה[ניסיון לכתוב בדיקת תקינות תעודת זהות ב-JS

ניסיתי לכתוב קוד שאמור לתת לי את ספרת הביקורת של מספר תעודת זהות בן 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>










מה הבעיה??

תודה!

נערך לאחרונה ע"י karel_or בתאריך 24-03-2007 בשעה 15:49.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #8  
ישן 30-03-2007, 18:09
  משתמש זכר Silver Strike Silver Strike אינו מחובר  
 
חבר מתאריך: 10.09.04
הודעות: 1,032
שלח הודעה דרך ICQ אל Silver Strike שלח הודעה דרך MSN אל Silver Strike
משפט תנאי מקוצר.
בתגובה להודעה מספר 7 שנכתבה על ידי karel_or שמתחילה ב "לא הבנתי מה עשית בשורה..."

אני מציב למשתנה fixInput ערך חדש. שמוחלט ע"י:
  1. התנאי (מה שמופיע בסוגריים). האם אורך המחרוזת fixInput שיצרתי בשלב הקודם היא שני תווים.
  2. אם התוצאה חיובית (התנאי מחזיר true) מתבצע מה שמופיע לאחר סימן השאלה:
    1. לוקח את התו הראשון (fixInput[0]h) וממיר אותו למספר (סימן החיבור "+" לפני המשתנה).
    2. לוקח את התו השני וומיר אותו למספר.
    3. מחבר בין שני המספרים שהתקבלו בשלבים 1 ו-2 ומצמיד את התוצאה למשתנה fixInput.
  3. אם התוצאה שלילית (התנאי מחזיר false) מתבצע מה שמופיע לאחר סימן הנקודותיים:
    1. ממיר את המחרוזת fixInput למספר.
    2. מצמיד את התוצאה למשתנה fixInput (למעשה מתבצעת רק ההמרה ממחרוזת למספר).
_____________________________________
תמונה שהועלתה על ידי גולש באתר ולכן אין אנו יכולים לדעת מה היא מכילה

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #9  
ישן 30-03-2007, 19:00
  karel_or karel_or אינו מחובר  
 
חבר מתאריך: 12.07.05
הודעות: 68
בתגובה להודעה מספר 1 שנכתבה על ידי karel_or שמתחילה ב "[בעיה[ניסיון לכתוב בדיקת תקינות תעודת זהות ב-JS"

אני אסביר את מה שכתבתי:


קוד:
for (var i=0;i<8;i++) { bigger=parseInt(IDTouch.substring(0,1)); //המרה של התו הראשון לשלם if (i%2 != 0)//אם איי זוגי sum+=bigger; else//אם לא { bigger*=2;//מכפילים את ביגר ב-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);//ביגר הוא ספרת הביקורת } }

תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #10  
ישן 31-03-2007, 22:09
  ישראל K ישראל K אינו מחובר  
 
חבר מתאריך: 25.08.03
הודעות: 9,114
פונקציה לבדיקת תיקנות מספר ת.ז. ישראלית
בתגובה להודעה מספר 1 שנכתבה על ידי karel_or שמתחילה ב "[בעיה[ניסיון לכתוב בדיקת תקינות תעודת זהות ב-JS"

קוד:
function ic_check(ic) { var ic_dig, ic_sum=0; ic = String(ic); if(ic.length > 9) return false; while(ic.length < 9) ic = '0' + ic; for(var i=0; i<9; i++) { ic_dig = i%2==0 ? ic[i]*1 : ((ic_dig=ic[i]*2)>9 ? ic_dig%10+1 : ic_dig); ic_sum += ic_dig } return (ic_sum%10)==0 ? true : false; }

כתבתי אותה בעבר ב-php, התאמתי אותה כרגע ל-js, מי שרוצה מוזמן לבדוק את תקינותה (לא ממש בדקתי אותה לאחר השינויים).

1. הפונקציה מחזירה ערך בוליאני.
2. לא חובה להזין את הספרות 0 התחיליות בקריאה לפונקציה, אך אם מזינים אותן חובה לתחום את המספר במרכאות מכיון שאחרת המספר יחושב כאוקטאלי.
3. הפונקציה בכלליותה:
שורה 3: הצהרת והגדרת משתנים.
שורה 5: המרת הערך למחרוזת, כדי למנוע שגיאה בקריאה לשיטה length.
שורות 7-8: בדיקה האם הערך גדול מ-9 ספרות והחזרת false בהתאם.
שורות 9-10: הוספת אפסים מובילים בהתאם לצורך.
שורות 12-16: לולאה העוברת על כל ספרה, מכפילה ב-1 או 2 ומבצעת את חיבור 2 הספרות (אם המספר גדול מ-9) בהתאמה ובסופה מחברת את הערך לערך הקודם.
שורה 18: בדיקה האם הערך שהתקבל מתחלק ל-10 עם שלמים או לא והחזרת ערך בוליאני בהתאם.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

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

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 04:16

הדף נוצר ב 0.04 שניות עם 12 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר