2016-03-20 28 views
-1

我有函数比较用户输入与xml文件中的字符串,但如果有空间或拼写错误它的返回false我希望它返回true,如果差异是一个字符比较字符串,并返回true如果有小拼写错误

//xml file like this 
<xmlString>HELLO</xmlString> 
<result>somthing</result> 

和脚本文件中像这样

var userInput="Jello"; 
if (userInput.toUpperCase().indexOf(xmlString) >= 0){ //this should return true and execute 

     return $(result).text();         
     } 

我该怎么办呢?有没有功能,我可以使用它从jQuery或任何其他框架?

有一个美好的一天:)

+1

什么是小错误?六分之一? –

+0

@NinaScholz是的,你可以这么说 –

回答

0

有没有我能想到的框架。然而,有一两件事你可以做的是使一个函数自己有点像这样:

function findCloseMatch(input) { 
    var i = 0; 
    var numberOfMismatches = Math.ceil(input.length/6); 
    while(i < input.length) { 
     // loop through xml entries { 
      if (input[i] != entry[i]) numberOfMismatches++; 
      // some if statement checking whether the match is better than the previous best one (maybe with number of matching chars) 
     } 
    } 
} 

编辑:失败后最后一次,对不起:)

2

https://en.wikipedia.org/wiki/Hamming_distance

在信息论,等长的两个字符串之间的汉明距离是对应的 符号不同的位置的数量。

function hammingDistance(str1, str2) { 
    var dist = 0; 
    str1 = str1.toLowerCase(); 
    str2 = str2.toLowerCase(); 
    for (var i = 0, j = Math.max(str1.length, str2.length); i < j; i++) { 
    if (!str1[i] || !str2[i] || str1[i] !== str2[i]) { 
     dist++; 
    } 
    } 
    return dist; 
} 

要允许一个不同的字符,这样你就可以测试,如果汉明距离为1或以下。

if (hammingDistance("Jello", "HELLO") <= 1) { 
    // ... 
}