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

React JS中如何统一阿拉伯ي与波斯ی以实现正常搜索功能?

解决波斯语与阿拉伯语字母不匹配的搜索问题

核心思路是统一文本标准:将数组中的数据和用户输入的搜索关键词,都转换为同一个字母体系(比如全部替换为波斯语标准字母),再进行匹配。

步骤1:编写标准化转换函数

创建一个函数,把文本中的阿拉伯语字母ي(以及其他可能的差异字母如ك)替换为波斯语对应的ی、ک:

const normalizePersianText = (text) => {
  if (!text) return '';
  return text
    .replace(/ي/g, 'ی') // 替换阿拉伯ي为波斯ی
    .replace(/ك/g, 'ک'); // 替换阿拉伯ك为波斯ک(可选,根据你的数据情况添加)
};

步骤2:修改搜索逻辑

在过滤数组时,同时对数组项和搜索关键词执行标准化转换,再进行匹配:

严格匹配(完全相等)

const items = ["ماشین","هواپیما","موبایل","کامپیوتر"];
const userInput = "ماشین"; // 用户输入波斯ی或阿拉伯ي都可以

const searchedItems = items.filter(item => 
  normalizePersianText(item) === normalizePersianText(userInput)
);

模糊匹配(包含关键词)

如果是模糊搜索需求,改用includes方法:

const searchedItems = items.filter(item => 
  normalizePersianText(item).includes(normalizePersianText(userInput))
);

额外说明

  • 这个方法能彻底消除两种字母的匹配障碍,用户无需区分波斯语和阿拉伯语字母的差异;
  • 如果你的数据中还有其他波斯语/阿拉伯语差异字符,可以继续在normalizePersianText函数中添加替换规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 18:05:46