¿Cuál es la mejor manera de averiguar si una entrada de texto incluye un texto específico con JQuery?

Por ejemplo, ¿cómo puedo averiguar y devolver un resultado booleano si $('#poo').val() incluye air< ?

EDITAR

Aquí está la solución a mi problema gracias a @Niklas;

var IsbtFortxtPropertyHotelNameOn = false;
$('#<%: txtPropertyHotelName.ClientID %>').keyup(function() { 

    if (/airport/i.test(this.value) && !IsbtFortxtPropertyHotelNameOn) { 
        $('#<%: txtPropertyHotelName.ClientID %>').btOn();
        IsbtFortxtPropertyHotelNameOn = true;
    } else if(IsbtFortxtPropertyHotelNameOn && !/airport/i.test(this.value)) {
        $('#<%: txtPropertyHotelName.ClientID %>').btOff();
        IsbtFortxtPropertyHotelNameOn = false;
    }
});
2
tugberk 29 jun. 2011 a las 13:37

4 respuestas

La mejor respuesta

Si desea tener control sobre la distinción entre mayúsculas y minúsculas, puede usar regex:

if (/airport/i.test(this.value)) alert('true');

Se vuelve especialmente útil si necesita verificar múltiples variables en lugar de solo el aeropuerto:

if (/(airport|station|docks)/i.test(this.value)) alert('true');

http://jsfiddle.net/niklasvh/tHLdD/

3
Niklas 29 jun. 2011 a las 09:47

Realmente no sé si es la mejor manera ... pero

function findInpWithTxt(txt) {
    var t = null;
    $("input[type=text]").each(function() {
        if ($(this).val().indexOf(txt) >= 0) {
            t = this;
            return false;
        }
    });
    return t;
}

Esto devolverá la entrada si se encuentra, nulo si no

0
José Leal 29 jun. 2011 a las 09:41
if($("#elementId").val().indexOf("airport") != -1) {
    //Contains "airport"
}

La función JavaScript indexOf devuelve el índice de la primera aparición de la cadena especificada. Si no se encuentra la cadena, devuelve -1.

0
James Allardice 29 jun. 2011 a las 09:41

Normalmente lo haría con las funciones indexOf o split , p.

$("#textInput").val().split("specifictext").length > 0

También hay Contiene Selector:

Descripción : selecciona todos los elementos que contienen el texto especificado.

Que tiene un propósito ligeramente diferente pero que puede serle útil

1
Грозный 29 jun. 2011 a las 09:50