Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

176
Views
¿Cómo verificar si una cadena contiene palabras específicas?
$a = 'how are you'; if (strpos($a,'are') !== false) { echo 'true'; }

En PHP, podemos usar el código anterior para verificar si una cadena contiene palabras específicas, pero ¿cómo puedo hacer la misma función en JavaScript/jQuery?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

puedes usar indexOf para esto

 var a = 'how are you'; if (a.indexOf('are') > -1) { return true; } else { return false; }

Editar : esta es una respuesta antigua que sigue obteniendo votos de vez en cuando, así que pensé que debería aclarar que en el código anterior, la cláusula if no es necesaria en absoluto porque la expresión en sí es booleana. Aquí hay una mejor versión que deberías usar,

 var a = 'how are you'; return a.indexOf('are') > -1;

Actualización en ECMAScript2016:

 var a = 'how are you'; return a.includes('are'); //true
over 4 years ago · Santiago Trujillo Report

0

indexOf / includes no debe usarse para encontrar palabras completas:

Una palabra (en la cultura occidental) es un dibujo de símbolos cerca uno del otro, con algo de espacio entre cada palabra. Una palabra se considera como tal si es una pieza completa de caracteres unidos y no una parte parcial de ella:

 "has a word".indexOf('wor') // 6 ("wor" is not a word in this sentence) "has a word".includes('ha') // true ("ha" is not a word in this sentence)

Compruebe si hay una sola palabra (palabra completa ) en la cadena

Encuentre una palabra completa real , no solo si las letras de esa palabra están en algún lugar de la cadena.

 const wordInString = (s, word) => new RegExp('\\b' + word + '\\b', 'i').test(s); // tests [ '', // true ' ', // true 'did', // true 'id', // flase 'yo ', // flase 'you', // true 'you not' // true ].forEach(q => console.log( wordInString('dID You, or did you NOt, gEt WHy?', q) )) console.log( wordInString('did you, or did you not, get why?', 'you') // true )

Compruebe si todas las palabras están en la cadena

 var stringHasAll = (s, query) => // convert the query to array of "words" & checks EVERY item is contained in the string query.split(' ').every(q => new RegExp('\\b' + q + '\\b', 'i').test(s)); // tests [ '', // true ' ', // true 'aa', // true 'aa ', // true ' aa', // true 'd b', // false 'aaa', // false 'a b', // false 'aaaaa ', // false ].forEach(q => console.log( stringHasAll('aA bB cC dD', q) ))

over 4 years ago · Santiago Trujillo Report

0

Si está buscando palabras exactas y no quiere que coincida con cosas como "pesadilla" (que es probablemente lo que necesita), puede usar una expresión regular:

 /\bare\b/gi \b = word boundary g = global i = case insensitive (if needed)

Si solo desea encontrar los caracteres "son", use indexOf .

Si desea hacer coincidir palabras arbitrarias, debe construir programáticamente un objeto RegExp (expresión regular) basado en la cadena de palabras y usar test .

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!