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

标签 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 _array = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"];

    if (_array.indexOf(_val) != -1) {
        $('span').text('it worked');
    } else {
        $('span').text(_array.indexOf(_val));
    } 
});

fiddle

最佳答案

检查 _array 的元素是否是文本框文本的子字符串:

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

演示:http://jsfiddle.net/WLacb/3/

<小时/>

一个稍微晦涩的解决方案是使用正则表达式:

if (/sun|mon|tue|wed|thu|fri|sat/ig.test(_val)) {
    $('span').text('it worked');
} else {
    $('span').text('nothing');
}

演示:http://jsfiddle.net/WLacb/9/

关于javascript - 如果输入包含数组中的任何单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11965183/

相关文章:

javascript - 单击鼠标绘制到 Canvas 已关闭

javascript - .on 不适用于动态 html

jquery ajax 调用重定向模式打开的 Web 方法?

Jquery .remove() 类,在 iframe 内

arrays - 使用数组将文本从一个工作表传递到另一个工作表

java - 如何将元素从 `2d array` 复制到 `Arraylist` ?

php - 插入特定值更改记录

javascript - 将数组从node.js/express传递到jade模板

javascript - 从简单类型创建嵌套 TypeScript 类型

javascript - 如何将图像填充为链接,并将其作为 JSON 对象存储在数组中?