Javascript 如果输入包含数组中的任何单词

Javascript 如果输入包含数组中的任何单词,javascript,jquery,arrays,indexof,Javascript,Jquery,Arrays,Indexof,我有一个输入,我想知道数组中是否存在任何值。举个简单的例子,我的数组是 var _array = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"]; 例如,如果我简单地键入'sun',我已经知道了如何触发它,但我想知道'hhsun'或'sunee'是否也存在 $('input').keyup(function() { var _val = $(this).val(); $('p').text(_val); var _a

我有一个输入,我想知道数组中是否存在任何值。举个简单的例子,我的数组是

var _array = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"];
例如,如果我简单地键入'sun',我已经知道了如何触发它,但我想知道'hhsun'或'sunee'是否也存在

$('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));
    } 
});

检查
\u数组的元素是否是文本框文本的子字符串:

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

演示:

一种简单的方法是使用内置命令循环遍历数组的每个元素,并检查它是否在文本框值中


谢谢Blender,你又帮了我一次:)很难选择,不过这一个比较简单
if (/sun|mon|tue|wed|thu|fri|sat/ig.test(_val)) {
    $('span').text('it worked');
} else {
    $('span').text('nothing');
}
$('span').text(-1);
$.each(_array, function(key, value) {
    if (_val.indexOf(value) != -1) {
        $('span').text('it worked');
    }
});