I'm working on a system that allows users to edit titles on certain pieces of information. One of the business rules is to only allow the user to make minor modifications and/or spelling corrections to the title per edit. Theoretically a user could completely change the title but it would take multiple edits.
Anyways... the reason was to limit the amount of change to the title per edit. For example a popular title could be "New Chevy Camaro Concept" and we didn't want them to edit the title so that it suddenly read "Free Pain Pills www.painpill.com" - In a way we wanted them to keep some part of the title.
After some research I came across Steve Hawley's String Similarity and Extension Methods. Steve packaged a few different string comparison functions into one library. Each method works as an extension method so it's easily reusable across your project.
The two methods I used from the library were:
In the library Similar Text gives you a percentage of change between two strings and the Levenshtien Distance formula gives the amount of difference between two strings (Click the link above if you want to fully understand the formula).
Using the above methods I created upper and lower bounds of acceptable changes and used that to determine whether we accepted the new title or not.
One of the neat side effects of implementing this validation was that we noticed people generally kept with the subject of the original title when they made changes. There is always the exception to the rule however ;)