jquery从url中查找并替换last参数

时间:2012-10-14 09:38:16

标签: javascript jquery

首先,我已经环顾四周,但没有什么能与我想要的相提并论,所以我想问是否有人可以帮助我。

我有一个网址“/ view / album / 4 / photo / 1” 我想删除最后一个参数,并用一些东西替换它。 我想要做的是找到最后一个“/”并删除它之后的数字并用新值替换它。

使用php很容易但我不知道如何在jquery中这样做,因为我刚开始学习它。所以我真的很感激能帮助的人。 :)

顺便说一下,这是我获取网址的代码:

action = $(form).attr('action'); //“/ view / album / 4 / photo / 1”

我不知道如何处理变量以更改最后一个参数的值

4 个答案:

答案 0 :(得分:5)

试试这个:) http://jsfiddle.net/hE6MC/

http://jsfiddle.net/YwG6b/

API:http://www.w3schools.com/jsref/jsref_lastindexof.asp

BTW我知道:) http://w3fools.com

<强>码

url = "/view/album/4/photo/1"
var value = url.substring(url.lastIndexOf('/') + 1);

alert(value);

url = url.replace(value, 'hulk')
alert("new url => " + url);​

另一种方式

var str = '/view/album/4/photo/1';
var i = str.lastIndexOf('/');
if (i != -1) {
    str = str.substr(0, i) + "/new stuff";
}

alert(str);
​

答案 1 :(得分:4)

var paths = location.pathname.split('/');
paths[ paths.length-1 ] = 'foo'; // new value
location.pathname = paths.join('/');

答案 2 :(得分:1)

简单易行:正则表达式。

action = (action.match(/(.*)\d+$/) == null) ? action : (action.match(/(.*)\d+$/)[1]+"2");

给定的

/view/album/4/photo/2

答案 3 :(得分:1)

如果您只想替换最后一个字符,可以使用slice方法。

$('form').attr('action', function(i, a){
    a.slice(0, -1) + 'number'
})