0

window.location.pathname を解析してその中の /s の数を返すことができる正規表現パターンを探しています (そして、それを思いつくことができませんでした)。

すべてのパスを Web サイトのホーム ディレクトリからの相対パスにしようとしています。

例: index.html には、src="js/scripts.js" のスクリプト タグがあります。しかし、/episode/10/index.html にアクセスするとうまくいきません。パス js/scripts.js は無効になりました。したがって、私の方法は、window.location.pathname の /s の数を検索および置換して返す単純な JavaScript を作成することです。その数を 1 減算し、すべての src を ../../ のようなものに変更します

これを行うための迅速で簡単な方法を知っている人はいますか?

4

3 に答える 3

3

私が作成したこの関数を使用できます:

String.prototype.count = function(a) {
    return this.match(new RegExp(a, "g")).length;
};
alert("Hi/how/are/you".count("/"))​;  // Alerts 3

jsFiddle の例

window.location.pathnameをこの関数にアタッチするだけです:

window.location.pathname.count("/");
于 2012-07-27T01:27:10.580 に答える
3

生成された配列要素の数を分割し'/'てカウントするだけではどうですか?

var slashCount = window.location.pathname.split('/').length - 1;

しかし、これが間違った問題を解決しているという感覚を揺るがすことはできません...

于 2012-07-27T01:31:31.393 に答える
0

適切なメソッドはString.prototype.matchです:

var slashCount = s.match(/\//g).length;
于 2012-07-27T02:17:02.227 に答える