GitHub - alexmacarthur/striff: Real simple string diffing.
source link: https://github.com/alexmacarthur/striff
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
striff
Simple string diffing. Given two strings, striff
will return an object noting which characters were added or removed, and at which indices.
Installation
Run npm install striff
. Or stick in on a page via CDN.
Usage
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
// ]
// }
Examples
Here's the kind of result you'll get with different types of diffing.
Strings w/ Characters Added
Input
const str1 = "abc";
const str2 = "abcde";
const result = striff(str1, str2);
Result
{
added: [
{
value: "d",
index: 3
},
{
value: "e",
index: 4
}
],
removed: []
}
Strings w/ Characters Removed
Input
const str1 = "abc";
const str2 = "a";
const result = striff(str1, str2);
Result
{
added: [],
removed: [
{
value: "b",
index: 1
},
{
value: "c",
index: 2
}
]
}
Strings w/ Duplicate Characters
Handling strings with duplicate, consecutive characters removed is a little weird. For strings whose characters were changed at the end, the indices will be grouped together at the end of the string.
Input
const str1 = "abbbc";
const str2 = "ab";
const result = striff(str1, str2);
Result
{
added: [],
removed: [
{
value: "b",
index: 2
},
{
value: "b",
index: 3
},
{
value: "c",
index: 4
}
]
}
For those whose whose characters were changed at the beginning, the indices will be grouped together at the beginning.
Input
const str1 = "abbbc";
const str2 = "bc";
const result = striff(str1, str2);
Result
{
added: [].
removed: [
{
value: "a",
index: 0
},
{
value: "b",
index: 1
},
{
value: "b",
index: 2
}
]
}
Feedback or Contributions
Make an issue or a pull request!
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK