js modify link parameters
For example, you need to modify the parameters in the callback
The value of callback is: " http://blog.whuang.com/search?username=90003819861 "
The value of the parameter username needs to be modified to abc
Expected result is: 'http://blog.whuang.com/search?username=abc'
Core method:
/** * callback link to add parameters or modify parameters * @param callback * @param key * @param val2 * @returns {*} */ parseCallbackUrl: function (callback, key, val2) { if (!callback) { return ''; } callback = callback.replace(/#$/, ''); if (callback.indexOf('?') == -1) { callback = callback + '?' + key + '=' + val2; } else if (callback.indexOf('&' + key + '=') == -1 && callback.indexOf('?' + key + '=') == -1) { callback = callback + '&' + key + '=' + val2; } else { var regExp = new RegExp('([&?]' + key + '=)[^&]*', ''); callback = callback.replace(regExp, ('$1' + val2)); } return callback; }
Test code:
var url='http://blog.whuang.com/search?username=90003819861'; console.log(urlUtil.parseCallbackUrl(url,'username','abc')); url='http://blog.whuang.com/search?a=b&username=90003819861'; console.log(urlUtil.parseCallbackUrl(url,'username','abc')); url='http://blog.whuang.com/search?a=b&username='; console.log(urlUtil.parseCallbackUrl(url,'username','abc')); url='http://blog.whuang.com/search?rusername=90003819861'; console.log(urlUtil.parseCallbackUrl(url,'username','abc')); url='http://blog.whuang.com/search'; console.log(urlUtil.parseCallbackUrl(url,'username','abc')); url='http://blog.whuang.com/search?userName='; console.log(urlUtil.parseCallbackUrl(url,'username','黄威'));