¿Cómo obtener la enésima aparición de una string en JavaScript?

La tarea es obtener la enésima aparición de una substring en una string con la ayuda de JavaScript.

Enfoque 1:

  • Primero, divida la string en substrings usando el método split() pasando también el índice.
  • Una vez más, únase a las substrings en la substring pasada usando el método join() .
  • Devuelve el índice de la enésima aparición de la string.

Ejemplo: en este ejemplo, se utilizan los métodos split() y join() para obtener el índice de la substring.

<!DOCTYPE HTML> 
<html> 
  
<head> 
    <title> 
        How to get nth occurrence of
        a string in JavaScript ?
    </title>
</head> 
  
<body style = "text-align:center;"> 
      
    <h1 style = "color:green;" > 
        GeeksForGeeks
    </h1>
      
    <p id = "GFG_UP" style = 
        "font-size: 19px; font-weight: bold;">
    </p>
      
    <button onclick = "GFG_Fun()">
        click here
    </button>
      
    <p id = "GFG_DOWN" style = 
        "color: green; font-size: 24px; font-weight: bold;">
    </p>
      
    <script>
        var el_up = document.getElementById("GFG_UP");
        var el_down = document.getElementById("GFG_DOWN");
        var string = "Geeks gfg Geeks Geek Geeks gfg";
        var searchString = 'Geeks';
        var occurrence = 3;
          
        el_up.innerHTML = "Click on the button to get the index of "
                + occurrence + "rd occurrence of a '" + searchString
                + "' in a <br>'" + string + "'.";
          
        function getPos(str, subStr, i) {
            return str.split(subStr, i).join(subStr).length;
        }
        function GFG_Fun() {
            el_down.innerHTML
                    = getPos(string, searchString, occurrence);
        }
    </script> 
</body>
  
</html>

Producción:

  • Antes de hacer clic en el botón:
    enésima ocurrencia-01
  • Después de hacer clic en el botón:
    enésima ocurrencia-02

Enfoque 2: revise cada substring una por una y devuelva el índice de la última substring. Este enfoque utiliza el método indexOf() para devolver el índice de la enésima aparición de la string.

Ejemplo:

<!DOCTYPE HTML> 
<html> 
  
<head> 
    <title> 
        How to get nth occurrence of
        a string in JavaScript ?
    </title>
</head> 
  
<body style = "text-align:center;" id = "body"> 
      
    <h1 style = "color:green;" > 
        GeeksForGeeks
    </h1>
      
    <p id = "GFG_UP" style = 
        "font-size: 19px; font-weight: bold;">
    </p>
      
    <button onclick = "GFG_Fun()">
        click here
    </button>
      
    <p id = "GFG_DOWN" style =
        "color: green; font-size: 24px; font-weight: bold;">
    </p>
      
    <script>
        var el_up = document.getElementById("GFG_UP");
        var el_down = document.getElementById("GFG_DOWN");
        var string = "Geeks gfg Geeks Geek Geeks gfg";
        var searchString = 'Geeks';
        var occurrence = 3;
          
        el_up.innerHTML = "Click on the button to get the index of "
                + occurrence + "rd occurrence of a '" + searchString
                + "' in a <br>'" + string + "'.";
          
        function getIndex(str, substr, ind) {
            var Len = str.length, i = -1;
            while(ind-- && i++ < Len) {
                i = str.indexOf(substr, i);
                if (i < 0) break;
            }
            return i;
        }
        function GFG_Fun() {
            el_down.innerHTML 
                    = getIndex(string, searchString, occurrence);
        }
    </script> 
</body>
  
</html>

Producción:

  • Antes de hacer clic en el botón:
    enésima ocurrencia-03
  • Después de hacer clic en el botón:
    enésimo-ocurrencia-04

Publicación traducida automáticamente

Artículo escrito por PranchalKatiyar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *