una tiene palabra cortar comprobar caracter cadena buscar javascript jquery string substring contains

javascript - palabra - ¿Cómo compruebo si la cadena contiene subcadena?



javascript find substring in string (13)

Esta pregunta ya tiene una respuesta aquí:

Tengo un carrito de compras que muestra las opciones de productos en un menú desplegable y si seleccionan "sí", quiero hacer visibles otros campos en la página.

El problema es que el carrito de la compra también incluye el modificador de precio en el texto, que puede ser diferente para cada producto. El siguiente código funciona:

$(document).ready(function() { $(''select[id="Engraving"]'').change(function() { var str = $(''select[id="Engraving"] option:selected'').text(); if (str == "Yes (+ $6.95)") { $(''.engraving'').show(); } else { $(''.engraving'').hide(); } }); });

Sin embargo, preferiría usar algo como esto, que no funciona:

$(document).ready(function() { $(''select[id="Engraving"]'').change(function() { var str = $(''select[id="Engraving"] option:selected'').text(); if (str *= "Yes") { $(''.engraving'').show(); } else { $(''.engraving'').hide(); } }); });

Solo deseo realizar la acción si la opción seleccionada contiene la palabra "Sí" e ignoraría el modificador de precio.


El método includes () determina si una cadena se puede encontrar dentro de otra cadena, devolviendo verdadero o falso según sea apropiado.

Sintaxis: -string.includes (searchString [, position])

searchString: -Una cadena a buscar dentro de esta cadena.

Posición: -Opcional. La posición en esta cadena en la que comenzar a buscar searchString; el valor predeterminado es 0.

string = ''LOL''; console.log(string.includes(''lol'')); // returns false console.log(string.includes(''LOL'')); // returns true


De otra manera:

var testStr = "This is a test"; if(testStr.contains("test")){ alert("String Found"); }

** Probado en Firefox, Safari 6 y Chrome 36 **


Devuelve el número de veces que la palabra clave se incluye en la cadena.

var count = "I have one keyword".match(/keyword/g); var clean_count = !count ? false : count.length;


ECMAScript 6 introduce documentation , anteriormente llamado contains .

Se puede usar así:

''foobar''.includes(''foo''); // true ''foobar''.includes(''baz''); // false

También acepta un segundo argumento opcional que especifica la posición en la que comenzar la búsqueda:

''foobar''.includes(''foo'', 1); // false ''foobar''.includes(''bar'', 1); // true

Se puede polyfilled con polyfilled para que funcione en navegadores antiguos.


Es bastante tarde para escribir esta respuesta, pero pensé en incluirla de todos modos. String.prototype ahora tiene un método que includes la verificación de subcadenas. Este método es sensible a mayúsculas y minúsculas.

var str = ''It was a good date''; console.log(str.includes(''good'')); // shows true console.log(str.includes(''Good'')); // shows false

Para verificar una subcadena, se puede tomar el siguiente enfoque:

if (mainString.toLowerCase().includes(substringToCheck.toLowerCase())) { // mainString contains substringToCheck }

Echa un vistazo a la documentation para saber más.


Me gusta esto:

if (str.indexOf("Yes") >= 0)

... o puede usar el operador tilde:

if (~str.indexOf("Yes"))

Esto funciona porque indexOf() devuelve -1 si no se encontró la cadena.

Tenga en cuenta que esto distingue entre mayúsculas y minúsculas.
Si desea una búsqueda que no distinga mayúsculas y minúsculas, puede escribir

if (str.toLowerCase().indexOf("yes") >= 0)

O,

if (/yes/i.test(str))


Nada de lo anterior funcionó para mí ya que había espacios en blanco, pero esto es lo que hice

tr = table.getElementsByTagName("tr"); for (i = 0; i < tr.length; i++) { td = tr[i].getElementsByTagName("td")[0]; bottab.style.display="none"; bottab2.style.display="none"; if (td) { var getvar=td.outerText.replace(//s+/, "") ; if (getvar==filter){ tr[i].style.display = ""; }else{ tr[i].style.display = "none"; } } }


Puedes definir un método de extensión y usarlo más tarde.

String.prototype.contains = function(it) { return this.indexOf(it) != -1; };

Para que puedas usar en tu página en cualquier lugar como:

var str="hello how are you"; str.contains("are");

que devuelve cierto .

Consulte la publicación de abajo para más métodos de ayuda de extensión. Métodos de ayuda de Javascript


Puedes usar este Polyfill en ie y chrome

if (!(''contains'' in String.prototype)) { String.prototype.contains = function (str, startIndex) { "use strict"; return -1 !== String.prototype.indexOf.call(this, str, startIndex); }; }


Sé que la mejor manera es str.indexOf(s) !== -1; http://hayageek.com/javascript-string-contains/

Sugiero otra manera ( str.replace(s1, "") !== str ):

var str = "Hello World!", s1 = "ello", s2 = "elloo"; alert(str.replace(s1, "") !== str); alert(str.replace(s2, "") !== str);


Si es capaz de usar bibliotecas, puede encontrar que la biblioteca Lo-Dash JS es bastante útil. En este caso, siga adelante y verifique _.contains() (reemplazado por _.includes() partir de v4).

(Tenga en cuenta que la convención de Lo-Dash es nombrar el objeto de la biblioteca _. No olvide revisar la instalación en la misma página para configurarlo para su proyecto).

_.contains("foo", "oo"); // → true _.contains("foo", "bar"); // → false // Equivalent with: _("foo").contains("oo"); // → true _("foo").contains("bar"); // → false

En su caso, siga adelante y use:

_.contains(str, "Yes"); // or: _(str).contains("Yes");

..que el que más te guste.


También puede verificar si la palabra exacta está contenida en una cadena. P.ej:

function containsWord(haystack, needle) { return (" " + haystack + " ").indexOf(" " + needle + " ") !== -1; }

Uso:

containsWord("red green blue", "red"); // true containsWord("red green blue", "green"); // true containsWord("red green blue", "blue"); // true containsWord("red green blue", "yellow"); // false

Así es como jQuery hace su método hasClass.


Usted podría utilizar la search o la match para esto.

str.search( ''Yes'' )

devolverá la posición del partido, o -1 si no se encuentra.