דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. המרת קלט מורכב מהמשתמש למערך, JS

המרת קלט מורכב מהמשתמש למערך, JS

מתוזמן נעוץ נעול הועבר תכנות
12 פוסטים 4 כותבים 164 צפיות 3 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • WWWW מנותק
    WWWW מנותק
    WWW
    כתב ב נערך לאחרונה על ידי
    #1

    אני רוצה לייצר מערך ב JS מקלט של המשתמש, בדומה לבחירת עמודים להדפסה.
    לדוגמה:
    2,6,7-9 ייתן את התוצאה מערך של: 2 6 7 8 9.

    בנוסף אני צריך שזה יהיה גם טקסט, לא רק במערך, אלא גם בקלט, לדוגמה:
    01,03,06-12 ייתן את התוצאה: 01 03 06 07 08 09 10 11 12.
    זה כבר מסובך לגמרי...

    איך אני עושה דבר כזה??

    WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

    yossizY תגובה 1 תגובה אחרונה
    0
    • WWWW WWW

      אני רוצה לייצר מערך ב JS מקלט של המשתמש, בדומה לבחירת עמודים להדפסה.
      לדוגמה:
      2,6,7-9 ייתן את התוצאה מערך של: 2 6 7 8 9.

      בנוסף אני צריך שזה יהיה גם טקסט, לא רק במערך, אלא גם בקלט, לדוגמה:
      01,03,06-12 ייתן את התוצאה: 01 03 06 07 08 09 10 11 12.
      זה כבר מסובך לגמרי...

      איך אני עושה דבר כזה??

      yossizY מנותק
      yossizY מנותק
      yossiz
      כתב ב נערך לאחרונה על ידי
      #2

      @www
      https://github.com/euank/node-parse-numeric-range

      @www אמר בהמרת קלט מורכב מהמשתמש למערך, JS:

      בנוסף אני צריך שזה יהיה גם טקסט, לא רק במערך, אלא גם בקלט, לדוגמה:
      01,03,06-12 ייתן את התוצאה: 01 03 06 07 08 09 10 11 12.
      זה כבר מסובך לגמרי...

      לא הבנתי את השלב הנוסף של הקושי

      📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

      WWWW תגובה 1 תגובה אחרונה
      3
      • yossizY yossiz

        @www
        https://github.com/euank/node-parse-numeric-range

        @www אמר בהמרת קלט מורכב מהמשתמש למערך, JS:

        בנוסף אני צריך שזה יהיה גם טקסט, לא רק במערך, אלא גם בקלט, לדוגמה:
        01,03,06-12 ייתן את התוצאה: 01 03 06 07 08 09 10 11 12.
        זה כבר מסובך לגמרי...

        לא הבנתי את השלב הנוסף של הקושי

        WWWW מנותק
        WWWW מנותק
        WWW
        כתב ב נערך לאחרונה על ידי WWW
        #3

        @yossiz אמר בהמרת קלט מורכב מהמשתמש למערך, JS:

        לא הבנתי את השלב הנוסף של הקושי

        בדיוק כמו שכתבתי, אני צריך אופציה של "01" ו "001", וכן "0000".

        באמצעות הפונקציה הנ"ל, זה מה שאני מקבל:
        07823bf9-ff35-4cf4-a8ea-3df260397115-image.png

        WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

        yossizY OdedDvirO 2 תגובות תגובה אחרונה
        0
        • WWWW WWW

          @yossiz אמר בהמרת קלט מורכב מהמשתמש למערך, JS:

          לא הבנתי את השלב הנוסף של הקושי

          בדיוק כמו שכתבתי, אני צריך אופציה של "01" ו "001", וכן "0000".

          באמצעות הפונקציה הנ"ל, זה מה שאני מקבל:
          07823bf9-ff35-4cf4-a8ea-3df260397115-image.png

          yossizY מנותק
          yossizY מנותק
          yossiz
          כתב ב נערך לאחרונה על ידי yossiz
          #4

          @www

          לא כתבת ברור אם הקוד אמור לזהות את הפורמט או שמישהו יזין את הפורמט לקוד והקוד רק חייב לפרמט אותו.

          האם צריך לפרמט כל חלק בפני עצמו? או שמספיק לזהות מהמספר הראשון את הפורמט של האחרים? (זה מספיק רק בהנחה שהם ממויינים ממטה למעלה)
          (בתמונה יש תערובות של פורמטים בקלט)

          📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

          WWWW תגובה 1 תגובה אחרונה
          3
          • WWWW WWW

            @yossiz אמר בהמרת קלט מורכב מהמשתמש למערך, JS:

            לא הבנתי את השלב הנוסף של הקושי

            בדיוק כמו שכתבתי, אני צריך אופציה של "01" ו "001", וכן "0000".

            באמצעות הפונקציה הנ"ל, זה מה שאני מקבל:
            07823bf9-ff35-4cf4-a8ea-3df260397115-image.png

            OdedDvirO מנותק
            OdedDvirO מנותק
            OdedDvir
            כתב ב נערך לאחרונה על ידי
            #5

            @www אמר בהמרת קלט מורכב מהמשתמש למערך, JS:

            באמצעות הפונקציה הנ"ל, זה מה שאני מקבל:
            07823bf9-ff35-4cf4-a8ea-3df260397115-image.png

            מה הבעיה בפלט, זה בדיוק מה שרצית, לא?
            משאלת @yossiz אני מבין שרצונך לפרמט גם את הפלט עם אפסים מובילים (לפי הקלט)

            dovidD תגובה 1 תגובה אחרונה
            3
            • OdedDvirO OdedDvir

              @www אמר בהמרת קלט מורכב מהמשתמש למערך, JS:

              באמצעות הפונקציה הנ"ל, זה מה שאני מקבל:
              07823bf9-ff35-4cf4-a8ea-3df260397115-image.png

              מה הבעיה בפלט, זה בדיוק מה שרצית, לא?
              משאלת @yossiz אני מבין שרצונך לפרמט גם את הפלט עם אפסים מובילים (לפי הקלט)

              dovidD מנותק
              dovidD מנותק
              dovid
              ניהול
              כתב ב נערך לאחרונה על ידי dovid
              #6
              function range(input){
                  var result = [];
                  var items = input.split(',');
                  for(var item of items){
                      var ranges = item.split('-');
              
                      if(ranges.length == 1)
                          result.push(item);
                      else{
                         var start = +ranges[0];
                         var end = +ranges[1];
                         var needPad = ranges[0][0] == '0';
                         for(let i = start; i <= end; i++)
                              result.push(needPad ? i.toString().padStart(ranges[1].length, '0') : i);
                         
                      }
                  }
                  return result;
              }
              
              range("01,03,06-12,25-30")
              

              ["01", "03", "06", "07", "08", "09", "10", "11", "12", "25", "26", "27", "28", "29", "30"]

              • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
              • בכל נושא אפשר ליצור קשר dovid@tchumim.com
              yossizY WWWW 2 תגובות תגובה אחרונה
              4
              • dovidD dovid
                function range(input){
                    var result = [];
                    var items = input.split(',');
                    for(var item of items){
                        var ranges = item.split('-');
                
                        if(ranges.length == 1)
                            result.push(item);
                        else{
                           var start = +ranges[0];
                           var end = +ranges[1];
                           var needPad = ranges[0][0] == '0';
                           for(let i = start; i <= end; i++)
                                result.push(needPad ? i.toString().padStart(ranges[1].length, '0') : i);
                           
                        }
                    }
                    return result;
                }
                
                range("01,03,06-12,25-30")
                

                ["01", "03", "06", "07", "08", "09", "10", "11", "12", "25", "26", "27", "28", "29", "30"]

                yossizY מנותק
                yossizY מנותק
                yossiz
                כתב ב נערך לאחרונה על ידי yossiz
                #7

                @dovid שתי הערות/שיפורים קטנים:
                שורה 3

                var items = input.split(',').map(s => s.trim());
                

                וכנ"ל שורה 5:

                var ranges = item.split('-').map(s => s.trim());
                

                שורה 14:

                result.push(needPad ? i.toString().padStart(ranges[1].length, '0') : i.toString());
                

                וכמובן צריך לטפל במצבים של קלט לא תקין...

                📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                yossizY תגובה 1 תגובה אחרונה
                2
                • yossizY yossiz

                  @dovid שתי הערות/שיפורים קטנים:
                  שורה 3

                  var items = input.split(',').map(s => s.trim());
                  

                  וכנ"ל שורה 5:

                  var ranges = item.split('-').map(s => s.trim());
                  

                  שורה 14:

                  result.push(needPad ? i.toString().padStart(ranges[1].length, '0') : i.toString());
                  

                  וכמובן צריך לטפל במצבים של קלט לא תקין...

                  yossizY מנותק
                  yossizY מנותק
                  yossiz
                  כתב ב נערך לאחרונה על ידי yossiz
                  #8

                  @WWW אם עוד לא הסתכלת... הקוד של הספרייה שהבאתי הוא פחות או יותר שווה לקוד של @dovid חוץ מכמה פיצ'רים שאתה לא צריך מן הסתם:

                  • כמה תווים לציין טווח: - ... .. ‥ …
                  • התעלמות מערכים לא מספריים (זה יכול להיות טוב או לא טוב, תלוי בצרכים)
                  • אפשרות לטווחים "הפוכים" (10-1 במקום 1-10)
                  • אפשרות למספרים שליליים (הקוד של דוד כמעט תומך בזה)

                  📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                  WWWW תגובה 1 תגובה אחרונה
                  3
                  • WWWW מנותק
                    WWWW מנותק
                    WWW
                    כתב ב נערך לאחרונה על ידי
                    #9

                    וואוו! תודה רבה לכם! @dovid @yossiz
                    אני הלכתי לישון... ואתם הבאתם לי משהו מוכן!

                    WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                    תגובה 1 תגובה אחרונה
                    1
                    • yossizY yossiz

                      @www

                      לא כתבת ברור אם הקוד אמור לזהות את הפורמט או שמישהו יזין את הפורמט לקוד והקוד רק חייב לפרמט אותו.

                      האם צריך לפרמט כל חלק בפני עצמו? או שמספיק לזהות מהמספר הראשון את הפורמט של האחרים? (זה מספיק רק בהנחה שהם ממויינים ממטה למעלה)
                      (בתמונה יש תערובות של פורמטים בקלט)

                      WWWW מנותק
                      WWWW מנותק
                      WWW
                      כתב ב נערך לאחרונה על ידי
                      #10

                      @yossiz אמר בהמרת קלט מורכב מהמשתמש למערך, JS:

                      @www

                      לא כתבת ברור אם הקוד אמור לזהות את הפורמט או שמישהו יזין את הפורמט לקוד והקוד רק חייב לפרמט אותו.

                      האם צריך לפרמט כל חלק בפני עצמו? או שמספיק לזהות מהמספר הראשון את הפורמט של האחרים? (זה מספיק רק בהנחה שהם ממויינים ממטה למעלה)
                      (בתמונה יש תערובות של פורמטים בקלט)

                      אני רוצה שאם יקלידו: "08-11" יתקבל מערך עם סטרינגים "08" "09" וכו' "11".
                      ואם יקלידו 1-3, יתקבל מערך עם סטרינגים "1" "2" "3".
                      ואם יקלידו "001-003" יתקבל סטרינגים "001" "002" "003".

                      עכשיו אני בודק אם הקוד של @dovid עונה על הציפיות!

                      WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                      תגובה 1 תגובה אחרונה
                      1
                      • yossizY yossiz

                        @WWW אם עוד לא הסתכלת... הקוד של הספרייה שהבאתי הוא פחות או יותר שווה לקוד של @dovid חוץ מכמה פיצ'רים שאתה לא צריך מן הסתם:

                        • כמה תווים לציין טווח: - ... .. ‥ …
                        • התעלמות מערכים לא מספריים (זה יכול להיות טוב או לא טוב, תלוי בצרכים)
                        • אפשרות לטווחים "הפוכים" (10-1 במקום 1-10)
                        • אפשרות למספרים שליליים (הקוד של דוד כמעט תומך בזה)
                        WWWW מנותק
                        WWWW מנותק
                        WWW
                        כתב ב נערך לאחרונה על ידי WWW
                        #11

                        @yossiz אמר בהמרת קלט מורכב מהמשתמש למערך, JS:

                        @WWW אם עוד לא הסתכלת... הקוד של הספרייה שהבאתי הוא פחות או יותר שווה לקוד של @dovid חוץ מכמה פיצ'רים שאתה לא צריך מן הסתם:

                        הקוד של הספרייה שלך כבר עבד לי מצוין אתמול, אבל רק עם 1 2 3 וכמובן לא עם 01 02 03.
                        הקוד של @dovid הרבה יותר מובן וקריא.

                        WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                        תגובה 1 תגובה אחרונה
                        1
                        • dovidD dovid
                          function range(input){
                              var result = [];
                              var items = input.split(',');
                              for(var item of items){
                                  var ranges = item.split('-');
                          
                                  if(ranges.length == 1)
                                      result.push(item);
                                  else{
                                     var start = +ranges[0];
                                     var end = +ranges[1];
                                     var needPad = ranges[0][0] == '0';
                                     for(let i = start; i <= end; i++)
                                          result.push(needPad ? i.toString().padStart(ranges[1].length, '0') : i);
                                     
                                  }
                              }
                              return result;
                          }
                          
                          range("01,03,06-12,25-30")
                          

                          ["01", "03", "06", "07", "08", "09", "10", "11", "12", "25", "26", "27", "28", "29", "30"]

                          WWWW מנותק
                          WWWW מנותק
                          WWW
                          כתב ב נערך לאחרונה על ידי
                          #12

                          @dovid עובד מצוין!
                          יישר כח.
                          הוספתי את התיקונים של @yossiz

                          WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                          תגובה 1 תגובה אחרונה
                          0
                          תגובה
                          • תגובה כנושא
                          התחברו כדי לפרסם תגובה
                          • מהישן לחדש
                          • מהחדש לישן
                          • הכי הרבה הצבעות


                          בא תתחבר לדף היומי!
                          • התחברות

                          • אין לך חשבון עדיין? הרשמה

                          • התחברו או הירשמו כדי לחפש.
                          • פוסט ראשון
                            פוסט אחרון
                          0
                          • דף הבית
                          • קטגוריות
                          • פוסטים אחרונים
                          • משתמשים
                          • חיפוש
                          • חוקי הפורום