从数组Jquery的大列表中搜索字符串中的某些单词

时间:2017-07-26 04:08:44

标签: javascript jquery

如何搜索与数组匹配的

字符串中的每个单词?

这是我的原型:

        $("#latte").on("click", function() {

            $('#lattePool').load('dictionary.txt'); 

            var text = $("#lattePool").text().toUpperCase();
            var words = text.split("\n");
            var dictionary = new Array();
            for(var i=0; i < words.length; i++) {
                dictionary[i] = words[i];
            };

            $("#notes p").each(function(){
                var nameFound = $.inArray($(this).text().trim().toUpperCase(), dictionary);
                if (nameFound === -1){
                } else {
                    alert($(this).text() + " found in array");
               }
            });

        });

当用户点击#latte按钮时,它会将一个dictionary.txt文本加载到临时池调用#lattePool中,然后将其分解为单个单词,然后分解为一个非常长的数组。

然后,当用户将某些内容粘贴到一个可信的div #notes中时,它需要在

标记中找到包含字典数组中所有单词的每个单词。

目前它仅适用于

中的单个单词,而不是长字符串。

是否有任何想法可以检查数组中

的每个单词?

非常感谢〜!!!

1 个答案:

答案 0 :(得分:0)

而不是$("#notes p").each您需要获取p标记文字并用空格分割并循环浏览它以找出所有单词。

试试这个:

$("#latte").on("click", function() {
        $('#lattePool').load('dictionary.txt', function(){
            var text = $("#lattePool").text().toUpperCase();
            var words = text.split("\n");
            var dictionary = new Array();
            for(var i=0; i < words.length; i++) {
                dictionary[i] = words[i];
            };
            var contentEditableTxt = $("#notes p").text();
            var splitCntEditableTxt = contentEditableTxt.split(" ");
            $.each(splitCntEditableTxt,function(key,val){   
                var nameFound = $.inArray(val.trim().toUpperCase(), dictionary);
                if (nameFound === -1){
                } else {
                    alert(val + " found in array");
               }
            });
        }); 
    });