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上发放的, 没有任何明示或暗示的警告或条件. 有关许可的特定语言的许可证 许可证的限制.