You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript中匹配CSV文件序列号并返回对应第二列值

解决方案

修改代码,将CSV解析为结构化数组,精准匹配序列号并返回对应名称:

<script>
    const checkm = document.getElementById('check');
    checkm.addEventListener('click', serialChecker);

    async function serialChecker() {
        const url = 'http://localhost/validator/serials.csv';
        const response = await fetch(url);
        const serialdata = await response.text();
        const inputserialnumber = document.getElementById('serialnumber').value.trim().toString();
        const validityElement = document.getElementById('validity');

        // 解析CSV为二维数组:按行拆分,再按逗号拆分列,过滤空行
        const rows = serialdata.split('\n').filter(row => row.trim() !== '');
        const serialArray = rows.map(row => row.split(',').map(item => item.trim()));

        // 遍历数组查找匹配的序列号
        let matchedName = null;
        for (const row of serialArray) {
            // 确保行有两列数据,且第一列完全匹配输入的序列号
            if (row.length >= 2 && row[0] === inputserialnumber) {
                matchedName = row[1];
                break;
            }
        }

        // 根据匹配结果更新提示
        if (matchedName && inputserialnumber.length === 7) {
            validityElement.innerHTML = matchedName;
            startConfetti(); // 调用礼花效果
        } else {
            validityElement.innerHTML = "Invalid";
            stopConfetti(); // 停止礼花
        }
    }
</script>

关键修改说明

  1. CSV解析优化:

    • 用split('\n')拆分每行,filter过滤空行避免无效数据
    • 每行再用split(',')拆分列,trim()去除单元格前后空格,处理CSV中可能的格式问题
  2. 精准匹配:

    • 遍历每一行,对比第一列的序列号(row[0] === inputserialnumber),避免includes()导致的部分匹配问题(比如输入"123"匹配到"123456")
  3. 结果处理:

    • 找到匹配项时,取出第二列的名称(row[1])替换提示文本
    • 保留原有的序列号长度校验(7位),确保输入格式合规

内容的提问来源于stack exchange,提问作者Jeen Lolkema

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 13:05:24