这是收到的字符串:
http://mysite.localhost.com/index.php?option=com_social&view=conversations&id=&Itemid=127
我需要将其更改为:
index.php?option=com_social&view=conversations&layout=download&fileid=279&Itemid=127
事情需要改变:
1)添加layout = download& fileid = VALUE IN VARIABLE&
2)id更改为fileid
我尝试使用url.substr(0, url.indexOf('conversations&'))
在特定字符串之前输入第一个字符串。
然后手动添加,
permanentlink = url.substr(0, url.indexOf('conversations&'));
permanentlink+'conversations&layout=download&fileid='+id+'&Itemid=127'
但这会使字符串连接起来......而且我不确定这样做的正确方法。可以帮助别人吗?
答案 0 :(得分:1)
尝试使用正则表达式替换它:
var url = 'http://mysite.localhost.com/index.php?option=com_social&view=conversations&id=&Itemid=127' + '&layout=download';
var newValue = 12222;
var newStr = url.replace(/id=/, 'fileid=' + newValue );
// remove this if doesnt want to replace &
var againNewStr = newStr.replace(/&/g, '&');
alert(againNewStr);
答案 1 :(得分:0)
您可以使用URL api来实现此目的:
var str = "http://mysite.localhost.com/index.php?option=com_social&view=conversations&id=&Itemid=127";
var url = new URL(str);
var urlParams = url.searchParams;
// add or replace certain keys
urlParams.set('layout', 'download');
urlParams.set('fileid', yourFileId);
urlParams.delete('id');
// the final url
var result = url.toString();
但是,由于这仍然是实验性的(尤其是URLSearchParams),请考虑使用polyfill。
答案 2 :(得分:0)
我会在&
上使用拆分。所以你得到一个包含所有(但是一个)选项的数组。然后取出数组的第一个元素并将其拆分为?
。如果需要,您可以查看每个选项,并将其移除或放入阵列中。然后你可以添加自己的选项。如果一切正常,你可以加入它并让你的网址。
(http://www.w3schools.com/jsref/jsref_split.asp)
(http://www.w3schools.com/jsref/jsref_join.asp)
其他方法是用正则表达式替换。 (https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/String/replace)