Как найти частичное совпадение строки?

Пробовал использовать алгоритм Левенштейна, но он зависит от длинны строки.

Пример:

let c = "1"
let b = "1"
let bb = "12"
let bbb = "123"

console.log(aza(c, b)); //100
console.log(aza(c, bb)); //50
console.log(aza(c, bbb)); //33


function aza(firstString, secondString, round = true) {
    import leven

    //Calculate leven distance.
    const levenDistance = leven(firstString, secondString);
    //Find longest string.
    const longestString = Math.max(firstString.length, secondString.length);
    //Calculate in percentage.
    const result = (longestString - levenDistance) / longestString * 100;
    return round ? Math.round(result) : result;
}

Как сделать, чтобы во всех вариантах было 100, так-как там есть искомая строка. P.S Там, в примере "1", что выглядит глупо. Его я взял лишь для наглядного отображения процентов.

В реальной задаче там будет что-то на подобии:

const string1 = "4185614171";
const veryVeryLongText = "И тут длинный текст со значением, 41856AA4171";

Соответственно, нужно четко понять, что содержимое string1 есть в veryVeryLongText, в процентах, к string1.


Ответы (0 шт):