Simple string diffing. Given two strings, striff
will return an object noting which characters were added or removed, and at which indices.
Run npm install striff
. Or stick in on a page via CDN.
Import it, pass a couple of strings, and do whatever you want with the results.
import striff from "striff";
const result = striff("string #1", "string #2");
// {
// added: [
// ...added characters
// ],
// removed: [
// ...removed characters
// ]
// }
Here's the kind of result you'll get with different types of diffing.
const str1 = "abc";
const str2 = "abcde";
const result = striff(str1, str2);
{
added: [
{
value: "d",
index: 3
},
{
value: "e",
index: 4
}
],
removed: []
}
const str1 = "abc";
const str2 = "a";
const result = striff(str1, str2);
{
added: [],
removed: [
{
value: "b",
index: 1
},
{
value: "c",
index: 2
}
]
}
For strings whose characters were changed at the end, the indices will be grouped together at the end of the string.
const str1 = "abbbc";
const str2 = "ab";
const result = striff(str1, str2);
{
added: [],
removed: [
{
value: "b",
index: 2
},
{
value: "b",
index: 3
},
{
value: "c",
index: 4
}
]
}
For those whose characters were changed at the beginning, the indices will be grouped together at the beginning.
const str1 = "abbbc";
const str2 = "bc";
const result = striff(str1, str2);
{
added: [].
removed: [
{
value: "a",
index: 0
},
{
value: "b",
index: 1
},
{
value: "b",
index: 2
}
]
}
Make an issue or a pull request!