¿Hay alguna forma más simple (idealmente de una función integrada que me perdí del documento) para recuperar la subcadena común entre el final de una cadena y el comienzo de otra cadena? Por ejemplo, abc def y def ghi deberían devolver def .
abcdef defghi ========= defMi implemento actual:
const a = "abcdef"; const b = "defghi"; function findCommonEndStart(a, b) { let common = ""; for (let i = 1; i <= a.length; i++) { const sub = a.slice(-i, a.length); if (b.startsWith(sub)) { common = sub; } } return common; } console.log(findCommonEndStart(a, b));Aquí como lo hice.
let a = "abdef"; let b = "defdklc"; function func(x, y) { for (i in x) { if (x.substr(-i, x.length) == y.substr(0, i)) { console.log(x.substr(-i, x.length)) } } } func(a, b)Parece que estás buscando una expresión regular simple:
let str = 'abcdef defghi'; let find = str => str.match(/(\w+)\b.+\b(?:\1)/m)?.[1]; let result = find(str); // result = 'def'