小编Ric*_*ard的帖子

在Javascript中查找字符串之间的差异

我想比较两个字符串(前后),并准确检测它们之间的位置和变化.

对于任何改变,我想知道:

  1. 变更的起始位置(包括从0开始)
  2. 结束相对于前一文本的更改(包括从0开始)的位置
  3. 改变"

假设字符串一次只在一个地方改变(例如,从不" B il l " - >" K il n ").

另外,我需要开始和结束位置来反映变化的类型:

  • 如果删除,则开始和结束位置应分别是已删除文本的开始和结束位置
  • 如果替换,开始和结束位置应分别是"已删除"文本的开始和结束位置(更改将是"添加"文本)
  • 如果插入,开始和结束位置应该相同; 文本的切入点
  • 如果没有变化,则让开始和结束位置保持为零,空位变化

例如:

"0123456789" -> "03456789"  
Start: 1, End: 2, Change: "" (deletion)

"03456789" -> "0123456789"  
Start: 1, End: 1, Change: "12" (insertion)

"Hello World!" -> "Hello Aliens!"  
Start: 6, End: 10, Change: "Aliens" (replacement)

"Hi" -> "Hi"  
Start: 0, End: 0, Change: "" (no change)
Run Code Online (Sandbox Code Playgroud)

我能够在某种程度上检测到已更改文本的位置,但它并不适用于所有情况,因为为了准确地执行此操作,我需要知道所做的更改.

var OldText = "My edited string!";
var NewText = "My first string!";

var …
Run Code Online (Sandbox Code Playgroud)

javascript string difference

10
推荐指数
1
解决办法
6668
查看次数

标签 统计

difference ×1

javascript ×1

string ×1