modules/util/util.js
// first converts the strings to lowercase and replaces diacritic marks with ascii equivalents.
first converts the strings to lowercase and replaces diacritic marks with ascii equivalents.
first converts the strings to lowercase and replaces diacritic marks with ascii equivalents .
function utilEditDistance(a, b) {
    a = removeDiacritics(a.toLowerCase());
    b = removeDiacritics(b.toLowerCase());
    if (a.length === 0) return b.length;
    if (b.length === 0) return a.length;
    var matrix = [];
    for (var i = 0; i <= b.length; i++) { matrix[i] = [i]; }
    for (var j = 0; j <= a.length; j++) { matrix[0][j] = j; }
    for (i = 1; i <= b.length; i++) {
        for (j = 1; j <= a.length; j++) {
            if (b.charAt(i-1) === a.charAt(j-1)) {
                matrix[i][j] = matrix[i-1][j-1];
            } else {
                matrix[i][j] = Math.min(matrix[i-1][j-1] + 1, 
                    Math.min(matrix[i][j-1] + 1, 
                    matrix[i-1][j] + 1)); 
            }
        }
    }
    return matrix[b.length][a.length];
}
function utilEditDistance ( a , b ) { a = removeDiacritics ( a . toLowerCase ( ) ) ; b = removeDiacritics ( b . toLowerCase ( ) ) ; if ( a . length === 0 ) return b . length ; if ( b . length === 0 ) return a . length ; var matrix = [ ] ; for ( var i = 0 ; i <= b . length ; i ++ ) { matrix [ i ] = [ i ] ; } for ( var j = 0 ; j <= a . length ; j ++ ) { matrix [ 0 ] [ j ] = j ; } for ( i = 1 ; i <= b . length ; i ++ ) { for ( j = 1 ; j <= a . length ; j ++ ) { if ( b . charAt ( i - 1 ) === a . charAt ( j - 1 ) ) { matrix [ i ] [ j ] = matrix [ i - 1 ] [ j - 1 ] ; } else { matrix [ i ] [ j ] = Math . min ( matrix [ i - 1 ] [ j - 1 ] + 1 , Math . min ( matrix [ i ] [ j - 1 ] + 1 , matrix [ i - 1 ] [ j ] + 1 ) ) ; } } } return matrix [ b . length ] [ a . length ] ; }
first converts the strings to lowercase and replaces diacritic marks with ascii equivalents.
first converts the strings to lowercase and replaces diacritic marks with ascii equivalents .
// substitution // insertion // deletion