javascript - 匹配字符串中存在的定义标签

标签 javascript arrays tags match

我在数组中定义了一些标签:

var myArray = [
    "mouse",
    "common",
    "malcom",
    "mountain",
    "melon",
    "table"
];

现在我想从字符串中提取我定义的标签,例如

从字符串:the mouse is on the desk,我想提取“mouse”标签

或者从字符串 the mouse is on the table 中,我想提取标签 "mouse""table"

此代码部分有效,但存在一些问题:

var myArray = [
    "mouse",
    "common",
    "malcom",
    "mountain",
    "melon",
    "table"
];

Object.defineProperty(Array.prototype, "MatchInArray", {
    enumerable: false,
    value: function(value) {
        return this.filter(function(currentItem) {
            return currentItem.match(value);
        });
    }
});

function doSearch(text){
    out = myArray.filter(function(currentItem){
        return currentItem.toLowerCase().indexOf(text) !== -1;
    });
    return out;
}

myInput.oninput = function(){
    var XXX = this.value;
    var YYY = XXX.replace(/ /g,',');
    var ZZZ = YYY.split(',');
    for(var i=0; i<ZZZ.length; i++){
        output.innerHTML = doSearch(ZZZ[i]);
    }
    //output.innerHTML = doSearch(this.value);
};

我做错了什么?

DEMO

最佳答案

翻转文本与项目的比较,这样你就不必做所有的正则表达式和拆分:

function doSearch(text){
    out = myArray.filter(function(currentItem){
        return text.toLowerCase().indexOf(currentItem) !== -1;
    });
    return out;
}

myInput.oninput = function(){
    output.innerHTML = doSearch(this.value);
};

关于javascript - 匹配字符串中存在的定义标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27365218/

相关文章:

javascript - 元素旋转不流畅

javascript - 即使它是全局变量,也无法比较类内部变量的值

javascript - 使用 JavaScript 创建数组并将其存储在 sessionStorage 中?

php - 是否有智能的 PHP Emacs 标记解决方案?

java - 使模板更容易的 JSP 技巧?

javascript - 将 jQuery 脚本存储在 JS 变量中

JavaScript:如何使用 getElementsByTagName 获取 img 和 div 元素

javascript - 查找数组中的第二大数

java - 如何将数组的元素连接成一个整数

java - 使用 JUnit 5 如何测试特殊标记的测试方法