Skip to content
This repository has been archived by the owner on Jun 1, 2021. It is now read-only.
/ editdidwhat Public archive

Compare two strings to see what has changed, and perform some string manipulation.

License

Notifications You must be signed in to change notification settings

joelpurra/editdidwhat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EditDidWhat javascript library

Donate $5 now Donate $25 now Donate $100 now More options

Compare two strings to see what has changed, and perform some string manipulation. Used to see what the user changed in a text input field (single- or multiline), and then act accordingly.

⚠️ This project has been archived

No future updates are planned. Feel free to continue using it, but expect no support.

Original purpose

Developed to provide several different autocomplete features in a multiline free-text address input fields.

  • Changes on the first line would autocomplete the full address from users' most used addresses.
  • Changes on the lines after the first line matching
    • the start of a street name would autocomplete the street name.
    • a complete street name would autocomplete/suggest valid street numbers.
    • zip codes would autocomplete the city name.

Get it

Demos

Usage

EditDidWhat works best with smaller changes, such as single key strokes.

var previous =	"The first line.\nThe text is miispleed.\nWonder what has changed?"
var current =	"The first line.\nThe text is corrected.\nWonder what has changed?"
var replaceWith = "But now it has been replaced."

var change = EditDidWhat.detectChange(previous, current);
var diffIndex = EditDidWhat.findDifferenceIndex(previous, current);
var diffLastIndex = EditDidWhat.findLastDifferenceIndex(previous, current);
var diffLineNumber = EditDidWhat.getLineNumberAt(current, diffIndex);
var diffLinePrevious = EditDidWhat.getLine(previous, diffLineNumber);
var diffLineCurrent = EditDidWhat.getLine(current, diffLineNumber);
var diffLineReplaced = EditDidWhat.replaceLine(current, diffLineNumber, replaceWith);

console.log("previous", previous);
console.log("current", current);
console.log("change", change); // EditDidWhat.StatusReplace
console.log("diffIndex", diffIndex); // 28
console.log("diffLineNumber", diffLineNumber); // 1
console.log("diffLinePrevious", diffLinePrevious); // The text is miispleed.
console.log("diffLineCurrent", diffLineCurrent); // The text is corrected.
console.log("diffLineReplaced", diffLineReplaced); // New string with the corrected line replaced.

Dependencies

EditDidWhat does not have any runtime dependencies.

Browser compatibility

Should be compatible with any javascript-enabled browser. You are encouraged to run the EditDidWhat test suite and then report any issues.


EditDidWhat copyright © 2011, 2012, 2013, 2014, 2015, 2016, 2017, The Swedish Post and Telecom Authority (PTS). All rights reserved. Released under the BSD license. Developed for PTS by Joel Purra. Your donations are appreciated!

Releases

No releases published

Packages

No packages published