2015-05-20 104 views
2

我有一个代码,这在下面拨弄JavaScript代码从字符串删除最后一个项目,如果它存在

http://jsfiddle.net/wbagktuw/

代码是这样的

<a data-rel="http://mydomain.domian.com?z_9.asp&rpttype=298&sotBy=2sortOrder=1&pagenum=2"> 

$(document).ready(function() { 
    var urlval = $("a").attr('data-rel'); 
    alert(urlval); 
}); 

我试图avaliable从url中删除& pagenum = 2如果它存在,如果它不存在,那么没问题,如果存在,我想删除那个

我应该试试这里

+0

我认为页码并不总是2? – znap026

回答

0

使用此代码

$(document).ready(function() { 
    var urlval = $("a").attr('data-rel'); 
    if(urlval.indexOf("pagenum")>-1){ 

    urlval=urlval.slice(0,urlval.lastIndexOf("&")); 
    console.log(urlval); 

    } 
}); 

的jsfiddle http://jsfiddle.net/wbagktuw/2/

0

这个怎么样, fiddle

$(document).ready(function() { 
    var urlval = $("a").attr('data-rel'); 
    var length = urlval.length 
    var start = urlval.indexOf("&pagenum="); 

    if (start !== -1){ 
     var next = urlval.indexOf("&",start+1); 
     next = (next !== -1)?next:length; 
     var res = urlval.substring(start, next); 
     urlval = urlval.replace(res, ''); 
    } 
    alert(urlval); 
}); 
+0

如果'pagenum = 2'不是最后一个参数?例如,它在'rpttype'之前? –

+0

编辑为帐户 – znap026

+0

如果我有一个pagenumber = 2而不是pagenum,这将变得混淆... –

0

甚至更​​好,为什么不干脆用什么JS已经内置..

urlval = urlval.replace('&pagenum=2', ''); 

这将同时处理情况&pagenum=2存在,而不是

+0

如果'&pagenum = 3'? –

+0

在这种情况下,您可以使用** regex **。我不知道这可能会改变。你可以编写一个正则表达式查询来检查是否存在**&pagenum = **后跟一个数字 –

4

使用正则表达式替换&pagenum=后跟任意数量的数字。

此外,检查其中pagenum是第一个参数在这种情况下,它遵循一个问号,而不是一个符号的情况下,:

var urlval = $('a').attr('data-rel').replace(/[\?&]pagenum=\d*/g, ''); 
+0

我认为这是最好的解决方案,而不涉及任何第三方库来解析URL –

相关问题