Reputation: 2128
I have an input and I want to know if any of the values in my array exist. For a simple example my array is
var _array = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"];
I've figured out how to trigger it if I type simply 'sun' for example, but I want to know if 'hhsun' or 'sunee' exist too.
$('input').keyup(function() {
var _val = $(this).val();
$('p').text(_val);
var _array = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"];
if (_array.indexOf(_val) != -1) {
$('span').text('it worked');
} else {
$('span').text(_array.indexOf(_val));
}
});
Upvotes: 3
Views: 4598
Reputation: 4185
A simple way to do this is to use the built in jquery.each command to loop through each element of the array and check if it is in the textbox value.
$('span').text(-1);
$.each(_array, function(key, value) {
if (_val.indexOf(value) != -1) {
$('span').text('it worked');
}
});
Upvotes: 2
Reputation: 298432
Check to see if an element of _array
is a substring of the textbox's text:
var _array = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"];
for (var i = 0; i < _array.length; i++) {
if (_val.indexOf(_array[i]) != -1) {
$('span').text('it worked');
return;
}
}
$('span').text('nothing');
Demo: http://jsfiddle.net/WLacb/3/
A slightly more obscure solution would be with regex:
if (/sun|mon|tue|wed|thu|fri|sat/ig.test(_val)) {
$('span').text('it worked');
} else {
$('span').text('nothing');
}
Demo: http://jsfiddle.net/WLacb/9/
Upvotes: 10