从数据属性中替换最后一个破折号值?

时间:2016-01-15 09:08:44

标签: javascript jquery

var dataUrl = $('#AjaxMoreStatus').attr("data-url");

// http://localhost:8888/app/status/get/31/7

我需要将最后一个破折号(7)的链接的最后一个值更改为另一个值。 7是动态值。

我能做到吗?

例如,如果我想将动态值7改为9:

var new = 9;
$("#AjaxMoreStatus").attr("data-url", url without the 7 + '/' + new);

5 个答案:

答案 0 :(得分:6)

使用lastIndexOf检查" /"

的最后一次出现的索引
var dataUrl = $('#AjaxMoreStatus').attr("data-url");

var newValue = 9;

dataUrl = dataUrl.substring( 0, dataUrl.lastIndexOf( "/" ) ) + "/" + newValue;

答案 1 :(得分:3)

使用split()分隔网址并替换最后一项:

 var url = "http://localhost:8888/app/status/get/31/7";
 url = url.replace("http://", "").split("/");
 var newValue = "9";

 url[(url.length - 1)] = newValue;

 var newUrl = "http://"+url.join("/");

答案 2 :(得分:3)

您可以像这里一样使用replace方法

var url = "http://localhost:8888/app/status/get/31/7";
a.replace(/\/(\d*)$/, '/' + newValue);

答案 3 :(得分:2)

如果您只需要更改最后7个用于其他内容,请尝试以下代码:

var dataUrl = 'http://localhost:8888/app/status/get/31/7';
var newValue = 9;

dataUrl = dataUrl.replace(/([0-9])$/i, newValue);

https://jsfiddle.net/8hf6ra8k/1/

希望它可以帮助你:)。

答案 4 :(得分:1)

您可以使用.lastIndexOf()查找index。然后,您可以替换该索引处的值。如需参考,请参阅以下帖子:How do I replace a character at a particular index in JavaScript?

var url = "htt[://stacloverflow.com/test/param/tobe/replaced/with/newValue";
var newVal = "testNewValue";

var lastIndex = url.lastIndexOf('/');
var result = url.substring(0,lastIndex+1) + newVal;
alert(result)