使用JavaScript匹配URL中的最后一个单词

时间:2015-02-26 04:50:51

标签: javascript regex

网址如下所示:

http://www.example.com/?lessoncontent=lesson-003-pinyin

我设法得到了最后一部分:

var url = window.location.href.split("/").pop();

所以现在我明白了:

?lessoncontent=lesson-003-pinyin

不知道如何获得最后一部分(pinyin)。我希望能够使用以下URL进行if语句:

?lessoncontent=lesson-001-pinyin
?lessoncontent=lesson-003-pinyin
?lessoncontent=lesson-002-complete
?lessoncontent=lesson-003-complete

(仅考虑网址的最后一个字)。

示例:

if (match === "pinyin") { //do stuff }
if (match === "complete") { //do stuff }

4 个答案:

答案 0 :(得分:3)

只需在-上拆分并从中获取最后一个元素。

var match = window.location.href.split("-").pop();
if (match === "pinyin") {}  // do stuff 
if (match === "complete") {} // do stuff

我们正在分裂-,然后通过将其弹出数组来获取其中的最后一个元素。

答案 1 :(得分:1)

[^-]*$

试试这个。看看demo.You可以直接在链接上应用它,并一步到位地得到答案。

https://regex101.com/r/wU7sQ0/16

var re = /[^-]*$/gm;
var str = 'http://www.example.com/?lessoncontent=lesson-003-pinyin';
var m;

while ((m = re.exec(str)) != null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
// View your result using the m-variable.
// eg m[0] etc.
}

答案 2 :(得分:1)

我会试试这个:

(\w+)[&?\/]?$

适用于所有类型的URL,例如是否存在URL参数。它会将所有单词字符添加到可选的尾随&?/See Regex 101 Demo here.

答案 3 :(得分:1)

您可以尝试使用RegExp:

var match = location.search.match(/(\w+)$/)[0]
if (match === "pinyin") { //do stuff }
if (match === "complete") { //do stuff }

此处,location.search仅包含参数,即?lessoncontent=lesson-001-pinyin。下一个match(/(\w+)$/)为您提供了一系列匹配的单词,来自字符串的结尾。