给定一个包含带有查询字符串参数的绝对 URL 的字符串,使用 JavaScript 和/或 MooTools 替换参数值的最简单方法是什么?
例如
// Change this
'/foo/bar?frob=123456789'
// Into this
'/foo/bar?frob=abcdefg'
编辑
URL 不是当前窗口的位置
。它是一个包含字符串的变量。我只想操纵这个字符串。
最佳答案
除了您所做的,这可能会更好,因为它将扩展 String
并消除对 URI 类的依赖...
(function() {
// deps on Types/String.toQueryString()
String.implement({
fixQueryString: function(key, value) {
var query = this.parseQueryString() || {};
query[key] = value;
return Object.toQueryString(query);
}
});
// exports:
this.replaceUrlParameter = function(url, key, value) {
var parts = url.split('?'), QS = parts[1] || null;
return QS ? [parts[0], QS.fixQueryString(key, value)].join("?") : url;
};
})();
console.log(replaceUrlParameter('/foo/bar', 'frob', 'ownies'));
/foo/bar/
console.log(replaceUrlParameter('/foo/bar?frob=123123123', 'frob', 'ownies'));
/foo/bar?frob=ownies
关于javascript - 如何使用 mooTools 更改查询字符串的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8971259/