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





6 Answers

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.

jquery caracter comprobar

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.




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.




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);
    };
}



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 



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.




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";
            }

        }
    }





Related