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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. רג'קס להסרת גרשיים מטקסט מלבד ר"ת

רג'קס להסרת גרשיים מטקסט מלבד ר"ת

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

    אני רוצה להסיר גרשיים (") מטקסט מסויים, אבל רק כשהגרשיים בודדות או נמצאות בתחילת או בסוף מילה, אבל גרשיים של ר"ת, באמצע מילה, אני רוצה להשאיר

    ניסיתי,

    const text = '"חבר" חב"ר "שלום"';
    
    const removeGershiimAll = text.replace(/"|>|</g, '');
    
    const removeGershiim = text.replace(/\b"|"|\b/g, '');
    

    כמובן שהראשון מסיר את הכל, אבל הבעיה שגם השני..

    אני בעצם רוצה שהתוצאה של removeGershiim תהיה חבר חב"ר שלום

    ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
    abaye.co

    צדיק תמיםצ pcinfogmachP 3 תגובות תגובה אחרונה
    0
    • אבייא אביי

      אני רוצה להסיר גרשיים (") מטקסט מסויים, אבל רק כשהגרשיים בודדות או נמצאות בתחילת או בסוף מילה, אבל גרשיים של ר"ת, באמצע מילה, אני רוצה להשאיר

      ניסיתי,

      const text = '"חבר" חב"ר "שלום"';
      
      const removeGershiimAll = text.replace(/"|>|</g, '');
      
      const removeGershiim = text.replace(/\b"|"|\b/g, '');
      

      כמובן שהראשון מסיר את הכל, אבל הבעיה שגם השני..

      אני בעצם רוצה שהתוצאה של removeGershiim תהיה חבר חב"ר שלום

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

      @אביי
      א. השני מכיל |"| שזה אומר "או מירכאות" (בלי שום החרגה), ב. אתה משתמש ב\b שלא עובד על אותיות בעברית אלא רק על ASCII

      Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
      טיפים

      תגובה 1 תגובה אחרונה
      5
      • אבייא אביי

        אני רוצה להסיר גרשיים (") מטקסט מסויים, אבל רק כשהגרשיים בודדות או נמצאות בתחילת או בסוף מילה, אבל גרשיים של ר"ת, באמצע מילה, אני רוצה להשאיר

        ניסיתי,

        const text = '"חבר" חב"ר "שלום"';
        
        const removeGershiimAll = text.replace(/"|>|</g, '');
        
        const removeGershiim = text.replace(/\b"|"|\b/g, '');
        

        כמובן שהראשון מסיר את הכל, אבל הבעיה שגם השני..

        אני בעצם רוצה שהתוצאה של removeGershiim תהיה חבר חב"ר שלום

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

        @אביי

        /(?<=[א-ת])"(?![א-ת])|(?<![א-ת])"(?=[א-ת])|(?<=\s)"(?=\s)/gs
        

        הדגמה

        הביטוי הזה מחפש:

        • יש לִפְנֵי (positive lookbehind) אות בעברית, מירכאות, אין אַחֲרֵי (negative lookahead) אות בעברית

        או

        • אין לִפְנֵי (negative lookbehind) אות בעברית, מירכאות, יש אַחֲרֵי (positive lookahead) אות בעברית

        או

        • יש לִפְנֵי (positive lookbehind) רווח, מירכאות, יש אַחֲרֵי (positive lookahead) רווח

        מראי מקומות:
        https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Regular_expressions/Lookbehind_assertion
        https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Regular_expressions/Lookahead_assertion

        Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
        טיפים

        תגובה 1 תגובה אחרונה
        6
        • אבייא אביי

          אני רוצה להסיר גרשיים (") מטקסט מסויים, אבל רק כשהגרשיים בודדות או נמצאות בתחילת או בסוף מילה, אבל גרשיים של ר"ת, באמצע מילה, אני רוצה להשאיר

          ניסיתי,

          const text = '"חבר" חב"ר "שלום"';
          
          const removeGershiimAll = text.replace(/"|>|</g, '');
          
          const removeGershiim = text.replace(/\b"|"|\b/g, '');
          

          כמובן שהראשון מסיר את הכל, אבל הבעיה שגם השני..

          אני בעצם רוצה שהתוצאה של removeGershiim תהיה חבר חב"ר שלום

          pcinfogmachP
          pcinfogmachP
          pcinfogmach
          כתב ב נערך לאחרונה על ידי pcinfogmach
          #4

          אינני בקי ברגקס של JS
          אבל ב-C# הייתי עושה כך:

          ^"|"$|" | "
          

          ההחלפה קצת יותר מורכבת כי אתה צריך להיזהר לא להחליף את הרווח. ולכן ייתכן שה-lookahead וה-lookbehind עדיף במקרה הזה כמו שצדיק תמים כתב
          https://regex101.com/r/CajTc0/1

          גמ"ח מידע מחשבים ואופיס

          תגובה 1 תגובה אחרונה
          2
          • dovidD
            dovidD
            dovid
            ניהול
            כתב ב נערך לאחרונה על ידי dovid
            #5

            כולם אמרו פה דברים נכונים, אבל אפשר גם ככה:

            text.replace(/(?:(\s|^)"|"(\s|$))/g, '$1$2');
            

            או:

            text.replace(/((\s|^)"|"(\s|$))/g, '$2$3');
            

            כלומר כמו ש@pcinfogmach רצה אבל עם לכידה של הרווח אם ישנו (משני הקבוצות האפשריות) והשארתו במחרוזת המוחלפת.

            • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
            • בכל נושא אפשר ליצור קשר dovid@tchumim.com
            תגובה 1 תגובה אחרונה
            2
            • dovidD
              dovidD
              dovid
              ניהול
              כתב ב נערך לאחרונה על ידי
              #6

              מצרף את תשובתו של GPT שהולכת בדרכו של @צדיק-תמים:

              text.replace(/(?<=\s|^)\"|\"(?=\s|$)/g, '');
              
              • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
              • בכל נושא אפשר ליצור קשר dovid@tchumim.com
              תגובה 1 תגובה אחרונה
              1

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

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

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

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


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

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

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