/
home
/
techb158
/
balavpn.abdallabala.com
/
node_modules
/
fast-levenshtein
/
/home/techb158/balavpn.abdallabala.com/node_modules/fast-levenshtein
mkdir
upload
Name
Size
Mode
Actions
levenshtein.js
3932
0666
edit
dl
rm
LICENSE.md
1100
0666
edit
dl
rm
package.json
998
0666
edit
dl
rm
README.md
3414
0666
edit
dl
rm
Edit:
/home/techb158/balavpn.abdallabala.com/node_modules/fast-levenshtein/levenshtein.js
(3932B)
(function() { 'use strict'; var collator; try { collator = (typeof Intl !== "undefined" && typeof Intl.Collator !== "undefined") ? Intl.Collator("generic", { sensitivity: "base" }) : null; } catch (err){ console.log("Collator could not be initialized and wouldn't be used"); } // arrays to re-use var prevRow = [], str2Char = []; /** * Based on the algorithm at http://en.wikipedia.org/wiki/Levenshtein_distance. */ var Levenshtein = { /** * Calculate levenshtein distance of the two strings. * * @param str1 String the first string. * @param str2 String the second string. * @param [options] Additional options. * @param [options.useCollator] Use `Intl.Collator` for locale-sensitive string comparison. * @return Integer the levenshtein distance (0 and above). */ get: function(str1, str2, options) { var useCollator = (options && collator && options.useCollator); var str1Len = str1.length, str2Len = str2.length; // base cases if (str1Len === 0) return str2Len; if (str2Len === 0) return str1Len; // two rows var curCol, nextCol, i, j, tmp; // initialise previous row for (i=0; i<str2Len; ++i) { prevRow[i] = i; str2Char[i] = str2.charCodeAt(i); } prevRow[str2Len] = str2Len; var strCmp; if (useCollator) { // calculate current row distance from previous row using collator for (i = 0; i < str1Len; ++i) { nextCol = i + 1; for (j = 0; j < str2Len; ++j) { curCol = nextCol; // substution strCmp = 0 === collator.compare(str1.charAt(i), String.fromCharCode(str2Char[j])); nextCol = prevRow[j] + (strCmp ? 0 : 1); // insertion tmp = curCol + 1; if (nextCol > tmp) { nextCol = tmp; } // deletion tmp = prevRow[j + 1] + 1; if (nextCol > tmp) { nextCol = tmp; } // copy current col value into previous (in preparation for next iteration) prevRow[j] = curCol; } // copy last col value into previous (in preparation for next iteration) prevRow[j] = nextCol; } } else { // calculate current row distance from previous row without collator for (i = 0; i < str1Len; ++i) { nextCol = i + 1; for (j = 0; j < str2Len; ++j) { curCol = nextCol; // substution strCmp = str1.charCodeAt(i) === str2Char[j]; nextCol = prevRow[j] + (strCmp ? 0 : 1); // insertion tmp = curCol + 1; if (nextCol > tmp) { nextCol = tmp; } // deletion tmp = prevRow[j + 1] + 1; if (nextCol > tmp) { nextCol = tmp; } // copy current col value into previous (in preparation for next iteration) prevRow[j] = curCol; } // copy last col value into previous (in preparation for next iteration) prevRow[j] = nextCol; } } return nextCol; } }; // amd if (typeof define !== "undefined" && define !== null && define.amd) { define(function() { return Levenshtein; }); } // commonjs else if (typeof module !== "undefined" && module !== null && typeof exports !== "undefined" && module.exports === exports) { module.exports = Levenshtein; } // web worker else if (typeof self !== "undefined" && typeof self.postMessage === 'function' && typeof self.importScripts === 'function') { self.Levenshtein = Levenshtein; } // browser main thread else if (typeof window !== "undefined" && window !== null) { window.Levenshtein = Levenshtein; } }());
Save
cmd:
run