2016-03-20 2 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) 
     } 
    } 
} 

EDIT: не удалось с поста в прошлый раз, извините :)

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) { 
    // ... 
} 
Смежные вопросы