RegEx在Javascript中获取字符串之后的URL部分

时间:2017-03-29 16:26:22

标签: javascript regex

我有以下网址:

http://data.test.com/api/v1/entity/1231

我需要获取v1/之后和/之前(斜杠之间)的文本,在本例中为entity。我正在使用以下正则表达式,但我得到的是第1组entity/1231

/^[^\#\?]+\/v1\/([^\?]+).*$/

有关如何摆脱1231entity之后发生的任何事情的想法吗?

2 个答案:

答案 0 :(得分:2)

试试这个:

^[^\#\?]+\/v1\/([^\?]+).*(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/1231)$

答案 1 :(得分:2)

您可以使用new RegExp("/v1/([^/]+)"

捕获所需的值

var str = "http://data.test.com/api/v1/entity/1231";
var res = str.match(new RegExp("/v1/([^/]+)"));
if (res) 
    console.log(res[1]);

/v1/([^/]+)匹配:

  • /v1/ - 文字字符串/v1/
  • ([^/]+) - 捕获与/以外的一个或多个字符匹配的第1组。

由于RegExp定义中的构造函数表示法,因此无需在正则表达式模式中转义正斜杠。