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

240
Vistas
React.js: encuentre una cadena en una cadena y haga que se pueda hacer clic si se encuentra

Soy nuevo para reaccionar js. Se suponía que debía lograr lo siguiente en mi proyecto:

  • Encuentra una cadena definida en una cadena grande
  • Haga que se pueda hacer clic en el enlace definido si se encuentra en la cadena grande

Mi código:

 function FindWord() { const givenWord = "hello there click this Forgot password if you do not remember your password" const toSearch="Forgot password" return ( <> {givenWord.includes(toSearch)? givenWord.substring(0,givenWord.indexOf(toSearch).toString()) + `<span style={{color:'red'}}>${toSearch}</span>` + (toSearch) :"No"} </> ) }

¿Hay un mejor enfoque?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Este es un componente/gancho de Linkify simple que acepta una cadena y un objeto de { [text]: ref } . El gancho divide la cadena a lo largo de los enlaces y luego asigna los elementos a texto o enlaces normales, de acuerdo con la existencia de href en el objeto de links . El componente representa los texts con enlaces for a span para textos normales.

 const { useMemo } = React const useLinkify = (str, links) => useMemo(() => str .split(new RegExp(`(${Object.keys(links).join('|')})`, 'g')) .map((text, id) => ({ id, href: links[text], text })) , [str, links]) const Linkify = ({ str, links }) => { const texts = useLinkify(str, links) return texts.map(({ id, href, text }) => { const Tag = href ? 'a' : 'span' return <Tag key={id} href={href}>{text}</Tag> }) } const str = 'hello there click this Forgot password if you do not remember your password' const links = { 'Forgot password': 'https://whatever.com' } ReactDOM.render( <Linkify str={str} links={links} />, root )
 <script crossorigin src="https://unpkg.com/react@17/umd/react.development.js"></script> <script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script> <div id="root"></div>

about 4 years ago · Juan Pablo Isaza Denunciar

0

Tienes que rodear la cadena de búsqueda con una etiqueta de anclaje como esta:

 const toSearch="Forgot password" const target = givenWord.indexOf(toSearch); const firstPart = givenWord.substring(0,target); const secondPart = givenWord.substring(target + toSearch.length, givenWord.length) return ( <> {givenWord.includes(toSearch)? <span>{firstPart}<a href="your-url.com" style={{color:'red'}}>${toSearch}</a>{secondPart}<span/> :"No"} </> ) }
about 4 years ago · Juan Pablo Isaza 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