JSFiddle - React, Tailwind, and code Playground

by hyperthalamus

HTML

<div id="test"></div>

JavaScript

RegExp.quote = function(str) {
     return str.replace(/([.?*+^$[\]\\(){}-])/g, "\\$1");
};

testClass = function(){   
}
var proto = testClass.prototype;
proto.supportedTokens = {
    '[page]' : function(list){
        return list.getCurrentPage();
    },
    '[startIndex]' : function(list){
        return list.queryIndex;
    },
    '[requestQty]' : function(list){
        return list.requestQty;
    },
    '[endIndex]' : function(list){
        return list.queryIndex + list.requestQty;
    }
}
proto.getCurrentPage = function(){
    return Math.round(this.queryIndex / this.requestQty);
}

proto.getPageRequest = function(url){
    for(var t in this.supportedTokens){
        var token = new RegExp(RegExp.quote(t), "g");
        url = url.replace(token , this.supportedTokens[t](this));
    }
    return url;
}
    
var url = "http://www.mysite.com/myFolder/?p=[page]&startIndex=[startIndex]&duplicatePage=[page]";

$(function(){
   var test = new testClass();
   var newURL = test.getPageRequest(url);
    
   $("#test").append(newURL);
});