I would like the decode the string URI, until there is no change. Usualy the string URI has around 53'000 characters. So the compare should be fast. In my example code I have used a short form of the string.
Here is my example code, which unfortunately not working:
var uri = "https%3A%2F%2Fw3schools.com%2Fmy%20test.asp%3Fname%3Dst%C3%A5le%26car%3Dsaab_VERY_LONG_URL"
var firstDecode = decodeURIComponent(uri.replace(/\+/g, " "));
var res = Decode(firstDecode);
function Decode(firstDecode){
var secondDecode = decodeURIComponent(uri.replace(/\+/g, " "))
while (firstDecode.localeCompare(secondDecode) != 0) {
firstDecode = decodeURIComponent(uri.replace(/\+/g, " "))
}
return firstDecode;
}
/* Expected Returns:
localeCompare()
0: exact match
-1: string_a < string_b
1: string_a > string_b
*/
How can I do that with the smoothest way? Thanks in advance.
Update 1
Ok new version of my code:
var uri = "https%3A%2F%2Fw3schools.com%2Fmy%20test.asp%3Fname%3Dst%C3%A5le%26car%3Dsaab_VERY_LONG_URL"
var res = Decode(uri);
function Decode(uri){
var initialURI = URI
var newURI = decodeURIComponent(uri.replace(/\+/g, " "));
If (initialURI === newURI) {
// no changes anymore
return newURI;
} else {
// changes were detected, do this function again
var res = Decode(newURI);
}
}
But its still doesn't work correct.