Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

73
Vistas
JavaScript: cadena de búsqueda desde la posición

JavaScript tiene dos métodos útiles, ambos casi hacen lo que necesito.

  • String.prototype.indexOf() buscará una subcadena y devolverá su posición. Tiene un parámetro de position opcional que es el punto de inicio de la búsqueda, por lo que puede encontrar fácilmente el siguiente.
  • String.prototype.search() buscará una cadena usando una expresión regular y devolverá su posición. Sin embargo, que yo sepa, no permite una posición inicial, por lo que siempre busca desde el principio.

¿Hay algo que me permita encontrar la posición usando una expresión regular que permita una posición inicial?

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Podrías hacer un String#slice por adelantado para deshacerte de las partes no deseadas y luego tomar String#search .

 function search(string, regexp, from = 0) { const index = string.slice(from).search(regexp); return index === -1 ? -1 : index + from; }
about 4 years ago · Santiago Trujillo Denunciar

0

Para obtener la posición de la posición original del resultado de la búsqueda, puede usar el enfoque de Nina Scholz y luego volver a agregar los caracteres eliminados desde el principio. Por ejemplo:

 const str = "Hello World!"; let start = 5; const output = str.substring(start).search(/World/g) + start; console.log(output); //6

Nota: tenga cuidado con los casos en los que .search() devuelve -1 .

about 4 years ago · Santiago Trujillo Denunciar

0

La otra respuesta es el camino a seguir, ya que es mucho más claro cuál es la intención, pero si tuviera que usar una expresión regular, podría hacerlo así:

 // This string should not include characters that have special // meaning in regular expressions / should be escaped. const inputString = "foo bar baz bar"; const offset = 8; const searchString = "bar"; inputString.search(new RegExp(`(?=.{${offset}}${searchString}`)); // (?= make sure ${searchString} ("bar") // is preceded by: // . anything // {$(a number)} at least this many times: // {8} in this example. // The (?=A)B positive lookahead won't be included in the result, // so you don't need to plus or minus the offset from the result: // Example: const str = 'aabbcc aabbcc aabbcc'; ^ ^ ^ 2 9 16 str.search(new RegExp(`(?<=.{${0}})bb`)); // Return 2 str.search(new RegExp(`(?<=.{${4}})bb`)); // Returns 9 str.search(new RegExp(`(?<=.{${10}})bb`)); // Returns 16 str.search(new RegExp(`(?<=.{${1000}})bb`)); // Returns -1 str.search(new RegExp(`(?<=.{${10}})doesntexist`)); // Returns -1
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda