javascript - 从用户输入中查找 csv 文件内容的精确值

标签 javascript csv input find match

我有一个简单的 HTML 文件,其中输入文本 id="ERP",我希望用户能够找到与 CSV 文件内容完全匹配的内容。这是我一直试图修复的代码。这会搜索 CSV 文件,但返回的结果与从输入框输入的值不完全一样,例如,输入框值 =“CH-134”,输出将显示“CH-134-DT”的数据,我该如何制作搜索结果与输入完全相同?预先感谢您。

    var DB = new Array();
    function MakeDB() { DB = CSV.split('\n'); }

    function CSVsearch(dbInfo) {
    var posn = -1;
    for (i=0; i<DB.length; i++) {
    tmp = DB[i];
    if (tmp.indexOf(dbInfo) != -1) { posn = i; break; } 
    }
    if (posn == -1) { alert('No matching result from the file'); }
    else { document.getElementById('tblDisplay').innerHTML = displayAsTable(DB[posn]); }
    }
    function displayAsTable(info) {
    var table = '<table border="1" width="75%" bgColor="F5F5F5" borderColor="FFFFFF">';
    var ary = info.split(',');
    table += '<tr align="left"><th align="left">'+ary.join('</tr><th align="left">')+'</td></tr>';
    table += '</table>';
    return table;
    }
    function resetthis() {
    document.getElementById("myForm").reset();

}

最佳答案

我想我会使用 Javascript str.match(regexp) function和正则表达式,而不是使用 str.indexOf(searchValue) 函数。

所以对于你的情况,我会做类似的事情:

var regex = '/\b' + dbInfo + '\b/g';
var matches = tmp.match(regex);
if (matches.length > 0) 
{ ... }

只需将上面的“\b”替换为您希望分隔传入数据的任何内容即可。例如,如果您希望在数据集中找到 CH-134,并且前后都有空格,则可以将“\b”留在那里。如果数据集中包含逗号,则可以将 '\b' 替换为 ','。或者,如果您只知道要匹配的单词的终止符,则可以省略正则表达式中的第一个“\b”。例如,您可以执行以下操作:

//finds occurences of dbInfo with anything before it, but only a comma after it
var regex = '/' + dbInfo + ',/g';

//finds occurences of dbInfo with a word break before it, and no hyphen after it
var regex = '/\b' + dbInfo + '[^-]/g';

您可能能够想出一个更好、更精确的正则表达式来满足您的需求。我最喜欢使用和测试正则表达式的网站是 http://regexr.com/

祝你好运!

关于javascript - 从用户输入中查找 csv 文件内容的精确值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34931924/

相关文章:

javascript - 在 couchDb 中存储大型 JSON 对象的好方法是什么?

使用 Swift 突出显示 Javascript 搜索文本

javascript - ajax上传图片不起作用

php - csv文件上传并更新mysql数据库

python - 使用python将带逗号的文本写入CSV文件中的单元格

python - 您可以在 Google App 引擎 - Python 上解压缩和查看内容吗?

c - 内存问题阻止输入到结构中?

c++ - 一次从文件中读取多行而不包含部分行的方法

jquery 每个输入都有Class

javascript - 导致监听器执行两次的 Angular 广播事件