javascript - 从 javascript 数组中的每个单词中查找匹配的字母

标签 javascript html arrays

我有一个像这样的 javascript 数组:

 var books = ['spring','last night','sweet heart','the sky','tomorrow'] ;

我有文本区域

 <textarea id="text" name="textpreview"  class="text"></textarea>

所以我想要的是,当我输入字母 s 时,我会得到两本建议书,只是第一个单词而不是第二个单词,我的意思不是 sky 只是 Spring 甜心

我会得到两个跨度

    <textarea id="text" name="textpreview"  class="text"></textarea>
    <span>spring</span>
    <span>sweet heart</span>

如果我在 s 之后再次输入 p 字母,如文本区域中的 sp ,那么我只会得到 spring

   <textarea id="text" name="textpreview"  class="text"></textarea>
    <span>spring</span>

等等。

如果我输入n,我什么也得不到。

如果我输入t,我将得到明天天空

希望能够实现。感谢您的支持。

最佳答案

这对您有帮助:

<html>
<head>
    <title></title>
</head>
    <body>
        <textarea id="text" name="textpreview"  class="text"></textarea>
        <p id="x"></p>
        <script>
            var x = document.getElementById("x");
            var books = ['spring','last night','sweet heart','last night','the sky','tomorrow','tomorrow'];
            var txt = document.getElementById("text");
            txt.onkeyup = function(event) {
                var str = "";
                var arr = [];
                var index = (txt.value).indexOf("@");
                if(index !== -1 && (txt.value).substr(index + 1).length > 0) {
                        var value = (txt.value).substr(index + 1);
                        value = value.replace(/[\.\+\*\\\?]/g,'\\$&');
                        var patt = new RegExp("^" + value);
                        for(var i=0; i<books.length; i++) {
                            if(patt.test(books[i]) && arr.indexOf(books[i]) === -1) {
                                arr.push(books[i]);
                            }       
                        }
                    }
                if (arr.length < 1 )
                    x.innerHTML = "";
                else {
                    for(var i=0; i<arr.length; i++)
                        str+=arr[i]+"<br>";
                    x.innerHTML = str;
                }
            }
        </script>
    </body>
</html>

关于javascript - 从 javascript 数组中的每个单词中查找匹配的字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38108362/

相关文章:

PHP MySQL 按日期查询,递增/递减日期

jquery - 背景层中的div

php - 将数组显示为表格

javascript - 拼接方法不从数组中删除项目

java - 一个数组,其项是另一个数组中连续项(相邻项)的差异

javascript - 如何在Javascript文件目录中创建 "getParent"函数

javascript 如何在每个单元格中添加一行?

javascript - NodeJS - 全局定义 'require' 脚本

javascript - document.write(HTML) 和 document.documentElement.innerHTML= HTML 之间的区别

javascript - 取消选择控件的 onchange 事件的传播