2016-03-20 24 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) { 
    // ... 
}