1

showNoディレクトリの先頭の入力である varがあります。

例:var showNo = "101B"

showNoは、他部署が設定したネットワーク上に設定されたスペースなどのジャンクを含む文字です。

例:/101B A Trip to the Beach/

このディレクトリ内のサブディレクトリを使用する必要があります:

例:/101B A Trip to the Beach/assets/tools/

正規表現と変数を使用して、すべてのディレクトリをスキャンして最初の 4 文字の部分文字列と一致させないようにする方法はありますか?

4

1 に答える 1

2
var directory = str.match(/\/101B[^\/]+\//)[0];

あなたの変数で始まる最初のディレクトリ名に一致します。

さらに重要なことは、アイデアは次のとおりです。

  1. ディレクトリ スラッシュで始まる最初の 4 文字の文字列リテラルに一致します。

  2. 次に、ディレクトリ スラッシュ以外の任意の文字一致します。「ではない」は ^ で示されます。

  3. 次に、2 をさらに 0 回以上繰り返します。

  4. 最後にディレクトリのスラッシュを一致させます。

「ないもの」文字クラスに問題があったと思います。難しいこともありますが、一度覚えてしまえば非常に便利なショートカットです。

- 編集 -

実際に読み直したところ、正規表現内で変数を使用する際に問題があったと思いますよね?方法さえ分かれば、それも簡単です。

最初に文字列として構築できます。

var regex_string = "/" + showNo + "[^/]+/";

そして、通常どおり使用できる正規表現に「コンパイル」します。

var regex_dir = RegExp(regex_string);

var directory = str.match(regex_dir);

お役に立てれば!

于 2013-01-27T05:06:09.953 に答える