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

288
Vistas
Compruebe si la palabra en la oración también está en la matriz

Si la palabra en la oración también está en la matriz, tome las primeras 3 letras de esta palabra y ponga un punto al final.

 var arr = ['select', 'delete', 'Truncate', 'insert', 'update'] function checkValue(value, arr) { var newText; for (var i = 0; i < arr.length; i++) { var name = arr[i]; if (value.toLowerCase().includes(name.toLowerCase())) { newText = value.toLowerCase().replace(name, name.substring(0, 3)); break; } } return newText; } console.log(checkValue('Hello Hello Delete33 Hello', arr));

Me está dando: hola hola del33 hola.

Pero quiero : Hola Hola Del. Hola.

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

0

Puede crear una expresión regular que coincida con sus elementos arr después de un límite de palabra y consumir cualquier carácter de palabra después de ellos, y reemplazar con los primeros tres caracteres agregando un punto justo después:

 var arr = ['select', 'delete', 'Truncate', 'insert', 'update'] var re = new RegExp("\\b(?:" + arr.join('|') + ")\\w*", 'ig') function checkValue(value, re) { return value.replace(re, (x) => x.substr(0,3) + "."); } console.log(checkValue('Hello Hello Delete33 Hello', re)); // => Hello Hello Del. Hello

Vea la demostración de expresiones regulares . Detalles :

  • \b - un límite de palabra
  • (?:select|delete|Truncate|insert|update) - un grupo que no captura que coincide con una de las palabras
  • \w* - cero o más caracteres de palabra (letras, dígitos, _ ).
about 4 years ago · Juan Pablo Isaza Denunciar

0

 var arr = ['select', 'delete', 'truncate', 'insert', 'update'] function checkValue(value, arr) { return value.split(" ").map(x => arr.find(y => x.toLowerCase().includes(y)) ? x.substring(0, 3) + "." : x).join(" "); } console.log(checkValue('Hello Hello Delete33 Hello', arr));

about 4 years ago · Juan Pablo Isaza Denunciar

0

La clave es que está obteniendo la subcadena pero reteniendo los números y no agregando un punto.

Aquí hay un método alternativo usando map , some y join .

 const arr = ['select', 'delete', 'Truncate', 'insert', 'update']; function checkValue(value, arr) { // `split` the string into words, and `map` // over them return value.split(' ').map(word => { // If one of the lowercase words in the array // is included included in the lowercase word... const found = arr.some(el => { return word .toLowerCase() .includes(el.toLowerCase()); }); // ...return the updated word if (found) return `${word.slice(0, 3)}.`; // Otherwise just return the word return word; // And `join` the array back to a string }).join(' '); } const str = 'Hello Hello Delete33 Hello Truncate'; const out = checkValue(str, arr); console.log(out);

Documentación adicional

  • Plantilla/literales de cadena
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