0

我有一个字符串(来自 url 中的路径名),我正在尝试提取其中的一部分,但我遇到了麻烦。

这是我到目前为止所拥有的:

^(/svc_2/pub/(.*?).php)

字符串是:

/svc_2/pub/stats/dashboard.php?ajax=1

如何获得/pub/stats/dashboard只返回的正则表达式?

4

3 回答 3

0

这不是很灵活,但应该适用于这种特定情况。

var basedir = '/svc_2/', str = '/svc_2/pub/stats/dashboard.php?ajax=1';
str = str.substring(basedir.length, str.indexOf('.'));
alert(str);
于 2013-07-30T22:15:07.387 回答
0

为此,使用正则表达式太多了,但这里是:

var string = "/svc_2/pub/stats/dashboard.php?ajax=1";
console.log(string.replace(/.*(\/pub.*)\.php.*$/,"$1"));

但是你可以做到,没有正则表达式,像这样

console.log(string.substr(6,string.indexOf(".php")-6));

在这两种情况下,console.log 都会给你/pub/stats/dashboard

于 2013-07-30T22:06:17.443 回答
0

如果它总是那种格式(我假设 /svc_2/ 总是在那里),那么应该这样做。

var s = "/svc_2/pub/stats/dashboard.php?ajax=1";
var match = s.match(/\/svc_2(.+)\./)[1];

但如果在此之前有任何事情发生,则不会。

于 2013-07-30T22:06:42.123 回答