¿Cómo verifico si la cadena contiene una subcadena? [duplicar

Esta pregunta ya tiene una respuesta aquí:

¿Cómo verificar si una cadena contiene una subcadena en JavaScript? 47 respuestas

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

El problema es que el carrito de compras 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 quiero realizar la acción si la opción seleccionada contiene la palabra "Sí" e ignoraría el modificador de precio.

Respuestas a la pregunta(13)

Su respuesta a la pregunta