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

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

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

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

מתוזמן נעוץ נעול הועבר תכנות
12 פוסטים 4 כותבים 297 צפיות 3 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • 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

                        שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.

                        נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.

                        בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗

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


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

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

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