0

ワイルドカードを使用してパスをJSを使用して変数に保存したいと思います。パスは次のようになります。

09328402984923kjh234243/2/somename.xml

パスの最初と2番目の部分は変更される可能性があるため、フォルダー名は予測できないため、ワイルドカードをいくつか含める必要があります。

私はRegExでこのようなことを試しました

var position = '\.?/\.?/somename.xml';

私は今この問題に永遠に取り組んでおり、stackoverflow(または他の場所)で見つけたすべてのサンプルが私のケースをカバーしていません。RegExが私の問題を解決できるかどうかさえわかりません...ワイルドカードを使用してパスを変数に保存することは可能ですか?そして可能であれば、正規表現は正しい方法ですか?

前もって感謝します

4

3 に答える 3

1

最終的に何を達成しようとしているのかわかりませんが、文字列内のプレースホルダーを「動的に置き換える」必要がある場合は、JavascriptsString.prototype.replaceメソッドを使用してください。

例:

var position = 'ph1/ph2/somename.xml';

var path_one = '09328402984923kjh234243',
    path_two = '2';

そして、私たちは次のように行くことができます

position = position
               .replace( 'ph1', path_one )
               .replace( 'ph2', path_two );

の結果を作成します09328402984923kjh234243/2/somename.xml

于 2012-12-06T01:24:14.030 に答える
1

あなたが探しているかもしれない正規表現はそうだと思います^(.+?)\/(.+?)\/somename\.xml$。しかし、あなたがそれで何をしたいのか分かりません。

于 2012-12-06T01:24:32.540 に答える
1

パスを文字列として開始し、JavaScript を使用して 2 つのフォルダー部分を抽出する場合は、次のようにします。

var path = '09328402984923kjh234243/2/somename.xml'
var regex = /[0-9a-zA-Z]*\//g

var folders = path.match(regex)

次にfolders[0]、値09328402984923kjh234243/と値をfolders[1]使用します2/

正規表現は最後にg修飾子を使用してグローバル マッチを実行し、すべてのマッチを取得します。また、現在、フォルダー名の英数字のみに一致します。

于 2012-12-06T01:38:33.670 に答える