我有一个看起来像......的网址
/page/sub/25/ --- edit page with ID @%
/page/sub ---new page has no ID
网址的最后一部分始终是ID (如果它不是新页面,那么就没有ID)。
我需要在jQuery 中获取网址的最后一部分并通过POST发送。例如......
$.ajax(
{
type: "POST",
url: URLVar,
data: "site="+encodeURIComponent(JSON.stringify(site)),
dataType: "json",
},
URLVar
如果有ID,则为
page/update/25
如果不是
/page/update
如何基于当前网址生成URLVar?
答案 0 :(得分:1)
尝试
var url = location.href;
var id= url.substring(url.lastIndexOf('/') + 1);
答案 1 :(得分:1)
试试这个:
var href = window.location.href;
var val = href.substr(href.lastIndexOf('sub') + 4).replace('/', '');
var URLVar = '';
if (val !== '') URLVar = 'page/update/' + val;
else URLVar = '/page/update';
alert(URLVar);
答案 2 :(得分:1)
就个人而言,我会使用正则表达式在字符串的末尾搜索一个数字,然后是/
;然后根据匹配是否形成更新URL。您可以将该逻辑拆分为一个函数,如下所示:
function getUpdateUrl(url) {
var matches = url.match(/(\d+)\/$/);
return '/page/update' + (matches ? '/' + matches[1] : '');
}
然后,例如,你会这样称呼它:
console.log(getUpdateUrl('/page/sub/')); // outputs /page/update
console.log(getUpdateUrl('/page/sub/25/')); // outputs /page/update/25
在您的情况下,您可能想要致电getUpdateUrl(window.location.href)
。