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

Replace the last dash value from a data attribut?

本文关键字:破折号 最后一个 数据属性 替换      更新时间:2023-09-26
var dataUrl = $('#AjaxMoreStatus').attr("data-url");
// http://localhost:8888/app/status/get/31/7

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

我能做到吗?

例如,如果我想更改动态值 7 x 9 :

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

使用 lastIndexOf 检查上次出现的 "/" 的索引

var dataUrl = $('#AjaxMoreStatus').attr("data-url");
var newValue = 9;
dataUrl = dataUrl.substring( 0, dataUrl.lastIndexOf( "/" ) ) + "/" + newValue;

使用 split() 分隔 url 的各个部分并替换最后一项:

 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("/");

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

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

如果您只需要更改最后 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/

希望它可以帮助您:)。

您可以使用

.lastIndexOf()来查找index。然后,您可以替换该索引处的值。有关参考,请参阅以下帖子:如何在 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)