TypeScript + diff-match-patch で差分検知
diff-match-patch を TypeScript で使った簡単なサンプルです。
diff-match-patch はテキスト同士の比較をできる便利なライブラリです。
差分をhtmlに出力できます。
npm install typescript ts-node diff-match-patch
npm install -D @types/diff-match-patch
npx tsc --init
mkdir src
touch src/main.ts
import { diff_match_patch as DiffMatchPatch } from 'diff-match-patch'
const textA = 'hoge\n foo\n bar\n'
const textB = 'hoge\n foo\n baz\n'
const compare = (textA: string, textB: string): void => {
const dmp = new DiffMatchPatch()
const diff = dmp.diff_main(textA, textB)
if (dmp.diff_levenshtein(diff) === 0) {
console.log('一致')
} else {
console.log('差分あり')
const html = dmp.diff_prettyHtml(diff)
console.log(html)
}
}
compare(textA, textB)
$ npx ts-node src/main.ts
差分あり
<span>hoge¶<br> foo¶<br> ba</span><del style="background:#ffe6e6;">r</del><ins style="background:#e6ffe6;">z</ins><span>¶<br></span>
最近のコメント