如何在jquery中插入和修改字符串?

时间:2016-11-03 07:29:22

标签: jquery

这是收到的字符串:
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'

但这会使字符串连接起来......而且我不确定这样做的正确方法。可以帮助别人吗?

3 个答案:

答案 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