我希望用户能够输入名称并使代码正常工作,即使名称与数据集中的名称不完全相同。例如:输入" Camden"工作,但输入"坎登"不起作用并返回错误。
如何使代码允许例如非大写字母或甚至是错误的字母?
layout_alignParentRight
答案 0 :(得分:1)
您可以使用字符串方法toLowerCase
或toUpperCase
进行大小写规范化:
> 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") { … }