JSFiddle - React, Tailwind, and code Playground

by aruss

JavaScript

if (!String.prototype.toUrl) {
  String.prototype.toUrl = function(o) {
 
		var r = this.replace(/\{([^{}]*)\}/g,function (a, b) {
				var r = o[b];
				delete o[b]; 
				return typeof r === 'string' || typeof r === 'number' ? r : a;
			}
		), p = [];
		
		for (var k in o) {
			if (o[k] !== undefined && o[k] !== null) {
				var v = o[k];
				if (isNaN(v))
					v = escape(v);
				p.push(k + '=' + v);
			}
		}
 
		return r + ((p.length > 0) ? '?' + p.join('&') : '');
	}; 
}


// usage 
document.write('api/post/{postId}'.toUrl({ postId: 124 })); 
document.write('<br/>');

document.write('api/post/{postId}/comments'.toUrl({ postId: 124, take: 10, skip:10 })); 
document.write('<br/>');