Javascript中问号(?)之前的最后一段

时间:2015-07-17 02:03:09

标签: javascript

这是网址

http://localhost:8080/BIM/teacher/reports/section-exercise/assignment?assessmentId=206a9246-ce83-412b-b8ad-6b3e28be44e3&classroomId=722bfadb-9774-4d59-9a47-89ac9a7a8f9a

我想在?之前抓取我的网址的最后一段,忽略?之后的内容

有人可以教我怎么做吗?

我试过

var href = location.href;
var lastSegment = href.substr(href.lastIndexOf('/') + 1);
console.log(lastSegment);

我得到了

分配assessmentId = 206a9246-ce83-412b-b8ad-6b3e28be44e3&安培; classroomId = 722bfadb-9774-4d59-9a47-89ac9a7a8f9a

我只想要作业

3 个答案:

答案 0 :(得分:5)

试试这个

var pathParts = location.pathname.split('/'),
    basename = pathParts[pathParts.length - 1];

或者这个超级方便的单行(有时我必须提醒自己数组有方法)

var basename = location.pathname.split('/').pop();

请参阅URLUtils.pathname

答案 1 :(得分:2)

var lastSegment = href.substring(href.lastIndexOf('/') + 1, href.lastIndexOf('?'));

您还必须限制结束 - 并使用子字符串而不是substr。

这也是小提琴;) http://jsfiddle.net/jf2xrahx/

答案 2 :(得分:1)

尝试使用String.prototype.match()

var url = "http://localhost:8080/BIM/teacher/reports/section-exercise/assignment?assessmentId=206a9246-ce83-412b-b8ad-6b3e28be44e3&classroomId=722bfadb-9774-4d59-9a47-89ac9a7a8f9a";
var res = url.match(/\w+\?/)[0].slice(0, -1);
document.write(res);