2016-03-20 23 views
-1

yazım hatası döndürür. Kullanıcı girişini xml dosyasındaki dizeyle karşılaştıran fonksiyon var ama boşluk ya da yazım hatası yanlışsa, fark bir karakterse true döndürmesini istiyorum bunu yapabilirim nasıl budize ile küçük bir yazım hatası varsa

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

     return $(result).text();         
     } 

gibi

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

ve komut dosyası? jquery veya başka bir çerçeveden kullanabileceğim işlev var mı?

:)

+1

Küçük bir hata nedir? altıda biri mi? –

+0

@NinaScholz evet bunu söyleyebilirsin –

cevap

0

Aklıma hiçbir çerçeveler vardır harika bir gün var.

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) 
     } 
    } 
} 

DÜZENLEME: Ancak, yapabileceği tek şey kendinizi biraz böyle bir işlev yapmak için özür :) bilgi teorisinde

2

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

, yazı ile başarısız oldu son kez eşit uzunluğundaki iki dizge arasındaki Hamming mesafesi, karşılık gelen sembollerinin farklı olduğu konumların sayısıdır.

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; 
} 

tek bir farklı bir karakter izin vermek istiyorum, bu yüzden hamming mesafesi 1 veya altında olup olmadığını test edebilirsiniz.

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