From 78014142c6ef4579564d97777618063ded716ff6 Mon Sep 17 00:00:00 2001 From: halliday Date: Thu, 9 Oct 2025 17:34:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AE=89=E5=85=A8=E6=9C=BA?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mvcar/js/script.js | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/mvcar/js/script.js b/mvcar/js/script.js index fdb508d..14eab39 100644 --- a/mvcar/js/script.js +++ b/mvcar/js/script.js @@ -6,6 +6,10 @@ document.addEventListener('DOMContentLoaded', function() { // 从JSON文件获取车辆数据库 let carDatabase = []; let isDataLoaded = false; + + // 添加搜索频率限制 + let lastSearchTime = 0; + const SEARCH_DELAY = 1000; // 1秒内只能搜索一次 // 加载车辆数据 fetch('js/cars.json') @@ -22,6 +26,20 @@ document.addEventListener('DOMContentLoaded', function() { 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; @@ -33,11 +51,17 @@ document.addEventListener('DOMContentLoaded', function() { return; } - // 在数据库中查找车牌(支持模糊匹配,忽略大小写) - //const carInfo = carDatabase.find(car => car.plate.includes(plate)); - const carInfo = carDatabase.find(car => - car.plate.toLowerCase().includes(plate.toLowerCase()) - ); + // 改进的模糊匹配逻辑 - 要求至少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