0

現在のURLは

search/warrington/st-album/title/3

の後に値を取得する必要があり、の後st-には何も取得しません/。したがって、この場合、私は戻りたいalbumだけです。

下の表現を使っています

var patt= new RegExp((?=/st-(.*?/)));
return patt.exec(url)[1];

ただし、これは戻りますalbum/

上記の例の after と before の正しい表現を教えてください。つまり、単に返すだけalbumではありませんalbum/

4

3 に答える 3

3

new RegExp((?=/st-(.*?/)));実際には構文エラーをスローする必要があります。

とにかく、/キャプチャ グループに表示されないようにするには、グループの外に移動します (正規表現リテラルを使用):

var patt = /(?=\/st-(.*?)\/)/;

先読みの必要はないと思います。遅延量指定子の代わりに、否定された文字クラスを使用できます。

var patt = /\/st-([^/]+)/;
于 2013-07-07T21:27:47.117 に答える
0

あなたのスラッシュは間違った場所にあります:

var patt= new RegExp((?=/st-(.*?)/));
return patt.exec(url)[1];

マッチ配列に含まれないように、グループの外に移動する必要があります。

于 2013-07-07T21:27:54.113 に答える
0
var expr = "search/warrington/st-album/title/3";
var regex = new RegExp( /\/st-(.*?)\// );
return regex.exec(expr)[1];

それは動作するはずです

于 2013-07-07T21:38:38.820 に答える