didyoumean

中文文档
1.2.2发布于 2021/06/24Apache-2.0CommonJS零依赖近 30 天下载 1.3亿

通过编辑距离将人类质量输入与潜在匹配匹配.

中文使用文档
文档目录10 节
  1. 实例
  2. {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF…
  3. 选项
  4. 阈值
  5. 绝对
  6. 敏感性
  7. 无结果
  8. 返回窗口对象
  9. 返回首选项
  10. 许可证

youMean.js - 一个简单的 JavaScript 匹配引擎

可用于 GitHub。 。 。 .

一个超简单、高度优化的联署材料库,用于将人的高质量投入与一份潜力清单相匹配 火柴。 比赛。 您可以使用它向用户建议错误拼写的命令行工具选项, 或者提供 链接到您404页上附近的有效 URL。 (以下实例取自个人项目, 来,来 HTML5 名片,它用YouMean.js来建议正确 错误拼入的 URL, 例如 dcporter.aws.af.cm/me/instagarm (英语). ) (中文(简体) ) 使用 Levenshtein 距离算法。 。 。 .

youMean.js在浏览器和节点.js中工作。 安装用于节点:

npm install didyoumean

实例

匹配字符串列表 :

var input = 'insargrm'
var list = ['facebook', 'twitter', 'instagram', 'linkedin'];
console.log(didYouMean(input, list));
> 'instagram'
// The method matches 'insargrm' to 'instagram'.

input = 'google plus';
console.log(didYouMean(input, list));
> null
// The method was unable to find 'google plus' in the list of options.

与对象列表相匹配 :

var input = 'insargrm';
var list = [ { id: 'facebook' }, { id: 'twitter' }, { id: 'instagram' }, { id: 'linkedin' } ];
var key = 'id';
console.log(didYouMean(input, list, key));
> 'instagram'
// The method returns the matching value.

didYouMean.returnWinningObject = true;
console.log(didYouMean(input, list, key));
> { id: 'instagram' }
// The method returns the matching object.

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}You Mean(str, list, [key]) {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你有没有说

  • str:要匹配的字符串输入.
  • 列表:要匹配的字符串或对象.
  • 键(选项): 如果您的列表数组包含对象, 您必须指定包含字符串的密钥 {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}对决.

返回:最接近的匹配字符串,如果没有字符串超过阈值则无效.

选项

选项设置在 diYouMean 函数对象上。 你可以随时改变.

阈值

默认情况下,该方法只返回编辑距离小于长度40%(0.4x)的字符串. 例如,如果一个十字母字符串是五位编辑,远离其最接近的匹配,则方法会返回为无效.

您可以通过设置“ 门槛” 值来控制此功能 。 例如,设置 编辑距离阈值至输入字符串长度的50%:

didYouMean.threshold = 0.5;

要返回最近的匹配, 无论阈值如何, 请设置为无效 .

绝对

此选项在行为上与阈值相同, 但取整数的编辑步骤 。 譬如说, 如果阈值确定为20(默认值),则该方法只返回编辑距离的字符串 少于20岁。 这两种选择都适用.

敏感性

默认情况下,该方法将进行对大小写不敏感的比较. 如果你想强迫案件敏感性,请设定 "caseSensitive"值为真:

didYouMean.caseSensitive = true;

无结果

默认情况下,如果没有足够接近的匹配,该方法会返回为无效. 您可以在此更改此值 .

返回窗口对象

默认情况下,该方法会返回取胜的字符串值(如果有的话). 如果列表中包含对象 相对于字符串,您可以将返回Winning对象设定为真实 .

didYouMean.returnWinningObject = true;

此选项对字符串列表没有影响 .

返回首选项

默认情况下,该方法将搜索所有值并返回最接近的匹配. 如果你只是寻找一个"好..." 足够"匹配,您可以适当设定阈值并设定返回 FirstMatch 真实到实质性速度 事情起来.

许可证

(原始内容存档于2013-2014年). You Mean版权 (c) 2013-2014 Dave Porter.

根据Apache许可证第2.0版("License"); 您不得使用此文件,除非符合许可证. 您可以获取许可证副本 这里。 。 。 .

除非适用的法律要求或书面同意,否则软件 根据许可证发放的是在“AS IS”BASIS上发放的, 没有任何明示或暗示的警告或条件. 有关许可的特定语言的许可证 许可证的限制.

版本与发布记录

didyoumean 共发布 4 个版本,首次发布于 2013/01/20;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.2.2latest2021/06/245 年前
1.2.12014/09/1512 年前
1.2.02014/03/1612 年前
1.1.02013/01/2013 年前

关于 didyoumean 的常见问题

didyoumean 是什么?

通过编辑距离将人类质量输入与潜在匹配匹配.

如何安装 didyoumean?

在项目目录运行 npm install didyoumean,或使用 pnpm add / yarn add / bun add。

didyoumean 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/didyoumean 是否存在。

didyoumean 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

didyoumean 可以商用吗?

didyoumean 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

didyoumean 的下载量有多少?

根据 npm 官方下载统计,didyoumean 在 2026/10/05 – 2026/11/03 这 30 天内被下载 133,666,492 次,日均约 4,455,550 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

didyoumean 还在维护吗?

最新版本 1.2.2 发布于 2021/06/24(5 年前);至今共发布 4 个版本,其中过去 12 个月发布了 0 个;首次发布于 2013/01/20。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。