JSFiddle - React, Tailwind, and code Playground
by nkovacs
JavaScript
var foo = function(origin, pathname, search, hash) {
var transactionFinalStatus = 2;
var splitString = 'valitorDialog=';
var hash = decodeURIComponent(hash);
var query = '?';
if (hash.indexOf('?') != -1) {
query = '&';
}
var beforeValidatorDialog = hash.slice(0, hash.indexOf(splitString) + splitString.length);
var afterValidatorDialog = hash.slice(hash.indexOf(splitString) + splitString.length);
var validatorDialogRest = '';
if (afterValidatorDialog.indexOf('&') != -1) {
validatorDialogRest = afterValidatorDialog.slice(afterValidatorDialog.indexOf('&'));
afterValidatorDialog = afterValidatorDialog.slice(0, afterValidatorDialog.indexOf('&'));
}
afterValidatorDialog = encodeURIComponent(afterValidatorDialog);
var replace = origin + pathname + search;
if (hash.indexOf('valitorDialog=') == -1) {
replace += hash + query + 'TransactionFinalStatus=' + transactionFinalStatus + validatorDialogRest;
} else {
replace += beforeValidatorDialog + afterValidatorDialog + encodeURIComponent(query + 'TransactionFinalStatus=') + transactionFinalStatus + validatorDialogRest;
}
return replace;
}
var test = function(actual, expected) {
console.log("actual: " + actual);
console.log("expected: " + expected);
if (actual === expected) {
console.log("OK");
} else {
console.log("NOK");
}
}
// http://localhost:8081/game/lotto?lang=en#/checkout/overview?valitorDialog=%2Fdialog%2Fcredit-card-callback%3Ftype%3Dadd
test(foo("http://localhost:8081", "/game/lotto", "?lang=en", "#/checkout/overview?valitorDialog=%2Fdialog%2Fcredit-card-callback%3Ftype%3Dadd"), "http://localhost:8081/game/lotto?lang=en#/checkout/overview?valitorDialog=%2Fdialog%2Fcredit-card-callback%3Ftype%3Dadd%26TransactionFinalStatus%3D2");
// http://localhost:8081/game/lotto?lang=en#/checkout/overview?valitorDialog=%2Fdialog%2Fcredit-card-callback%3Ftype%3Dadd&kiszurokveled=true
test(foo("http://localhost:8081", "/game/lotto", "?lang=en",...