Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

is there any way to calculate % match between 2 strings

Is there any way to calculate % match between 2 strings?

i have a situation where it is required to calculate matches between 2 strings if there is 85%

match then i will combine 2 tables, i have written the code for combining 2 tables

my sample strings are :

var str1 = 'i love javascript';
var str2 = 'i love javascripttt';

var matchPer = match(str1,str2); // result might be 80% , 85%, 90% ,95% etc
like image 754
Dilip G Avatar asked Jan 10 '17 05:01

Dilip G


1 Answers

Something like this?

var str1 = 'i love javascript';
var str2 = 'i love javascripttt';

function match(str1, str2){
    var tmpValue = 0;
    var minLength = str1.length;
	if(str1.length > str2.length){
		var minLength = str2.length;
	}	
    var maxLength = str1.length;
	if(str1.length < str2.length){
		var maxLength = str2.length;
	}
    for(var i = 0; i < minLength; i++) {
        if(str1[i] == str2[i]) {
            tmpValue++;
        }
    }
    var weight = tmpValue / maxLength;
    return (weight * 100) + "%";
}

var matchPer = match(str1,str2);
console.log(matchPer); //outputs: 89.47%
console.log( match("aaaaa", "aaaaa") ); //outputs: 100%
console.log( match("aaaaa", "aXaaa") ); //outputs: 80%
console.log( match("aaaaa", "aXXaa") ); //outputs: 60%
console.log( match("aaaaa", "aXXXa") ); //outputs: 40%
console.log( match("aaaaa", "aXXXX") ); //outputs: 20%
like image 144
Ala Eddine JEBALI Avatar answered Oct 15 '22 16:10

Ala Eddine JEBALI