(URL のパス名からの) 文字列があり、その一部を取り出そうとしていますが、問題が発生しています。
これは私がこれまでに持っているものです:
^(/svc_2/pub/(.*?).php)
文字列は次のとおりです。
/svc_2/pub/stats/dashboard.php?ajax=1
のみを返す正規表現を取得するにはどうすればよい/pub/stats/dashboard
ですか?
(URL のパス名からの) 文字列があり、その一部を取り出そうとしていますが、問題が発生しています。
これは私がこれまでに持っているものです:
^(/svc_2/pub/(.*?).php)
文字列は次のとおりです。
/svc_2/pub/stats/dashboard.php?ajax=1
のみを返す正規表現を取得するにはどうすればよい/pub/stats/dashboard
ですか?
このため、正規表現を使用するのは多すぎますが、次のとおりです。
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
常にその形式である場合 (/svc_2/ が常に存在すると想定しています)、これで問題ありません。
var s = "/svc_2/pub/stats/dashboard.php?ajax=1";
var match = s.match(/\/svc_2(.+)\./)[1];
しかし、その前に何かがある場合はそうではありません。
これはあまり柔軟ではありませんが、この特定のケースでは機能するはずです。
var basedir = '/svc_2/', str = '/svc_2/pub/stats/dashboard.php?ajax=1';
str = str.substring(basedir.length, str.indexOf('.'));
alert(str);