Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

76
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda