document.addEventListener('DOMContentLoaded', function() { const searchButton = document.getElementById('searchButton'); const licensePlateInput = document.getElementById('licensePlate'); const errorMessage = document.getElementById('errorMessage'); // 从JSON文件获取车辆数据库 let carDatabase = []; let isDataLoaded = false; // 添加搜索频率限制 let lastSearchTime = 0; const SEARCH_DELAY = 1000; // 1秒内只能搜索一次 // 加载车辆数据 fetch('js/cars.json') .then(response => response.json()) .then(data => { carDatabase = data; isDataLoaded = true; }) .catch(error => { console.error('加载车辆数据失败:', error); showError('无法加载车辆数据库'); }); searchButton.addEventListener('click', function() { const plate = licensePlateInput.value.trim(); // 检查输入长度 if (plate.length < 3) { showError('请输入至少3个字符进行搜索'); return; } // 检查搜索频率 const currentTime = new Date().getTime(); if (currentTime - lastSearchTime < SEARCH_DELAY) { showError('搜索过于频繁,请稍后再试'); return; } lastSearchTime = currentTime; if (!plate) { showError('请输入车牌号码'); return; } // 检查数据是否已加载 if (!isDataLoaded) { showError('数据加载中,请稍后再试...'); return; } // 改进的模糊匹配逻辑 - 要求至少3个连续字符匹配 const carInfo = carDatabase.find(car => { const lowerPlate = car.plate.toLowerCase(); const searchPlate = plate.toLowerCase(); // 只有当搜索词长度>=3且能找到连续匹配时才返回true if (searchPlate.length >= 3) { return lowerPlate.includes(searchPlate); } return false; }); if (carInfo) { // 将车辆信息存储到 sessionStorage sessionStorage.setItem('carInfo', JSON.stringify(carInfo)); // 跳转到结果页面 window.location.href = 'result.html'; } else { showError('没有找到该车牌号码对应的车主信息'); } }); // 回车键触发搜索 licensePlateInput.addEventListener('keypress', function(e) { if (e.key === 'Enter') { searchButton.click(); } }); function showError(message) { errorMessage.textContent = message; errorMessage.style.display = 'block'; // 3秒后隐藏错误信息 setTimeout(() => { errorMessage.style.display = 'none'; }, 3000); } });