如何在输入查询中允许宽大?

时间:2016-04-24 14:31:39

标签: javascript json

我希望用户能够输入名称并使代码正常工作,即使名称与数据集中的名称不完全相同。例如:输入" Camden"工作,但输入"坎登"不起作用并返回错误。

如何使代码允许例如非大写字母或甚至是错误的字母?

layout_alignParentRight

3 个答案:

答案 0 :(得分:1)

您可以使用字符串方法toLowerCasetoUpperCase进行大小写规范化:

> var name = "Camden"
> name.toLowerCase() === "camden"
true

对于错误的字母,您可以查看levenshtien distance,您可以找到许多实现,例如https://github.com/gf3/Levenshtein

答案 1 :(得分:1)

最简单的方法是将两个变量与大写进行比较:str.toUpperCase();

因此,它将匹配名称为CamDen,camDEn等的大写字母。

feat.properties.NAME.toUppercase() == name.toUppercase()

答案 2 :(得分:0)

检查是否只有一个字母错误:

您可以使用 Levenshtein距离算法来计算2个字符串之间的距离。

if (getDistance("camden", "calden") === 1) { … }

使用this implementation(第一个)。

比较2个没有区分大小写的检查字符串:

if ("Camden".toLowerCase() === "camden") { … }