string-metric
Version:
Get string similarity in JavaScript or TypeScript
32 lines (31 loc) • 1.14 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.NormalizedLevenshtein = void 0;
var Levenshtein_1 = require("./Levenshtein");
var utils_1 = require("./utils/utils");
var NormalizedLevenshtein = /** @class */ (function () {
function NormalizedLevenshtein() {
this.l = new Levenshtein_1.Levenshtein();
}
NormalizedLevenshtein.prototype.distance = function (s1, s2) {
if (utils_1.isNullOrUndefined(s1)) {
throw new Error('s1 must neither be null nor undefined');
}
if (utils_1.isNullOrUndefined(s2)) {
throw new Error('s2 must neither be null nor undefined');
}
if (s1 === s2) {
return 0;
}
var mLen = Math.max(s1.length, s2.length);
if (mLen === 0) {
return 0;
}
return this.l.distance(s1, s2) / mLen;
};
NormalizedLevenshtein.prototype.similarity = function (s1, s2) {
return 1 - this.distance(s1, s2);
};
return NormalizedLevenshtein;
}());
exports.NormalizedLevenshtein = NormalizedLevenshtein;
;