0

(URL のパス名からの) 文字列があり、その一部を取り出そうとしていますが、問題が発生しています。

これは私がこれまでに持っているものです:

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

文字列は次のとおりです。

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

のみを返す正規表現を取得するにはどうすればよい/pub/stats/dashboardですか?

4

3 に答える 3

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 に答える
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 に答える