1

(再帰的に) コピーする必要があるディレクトリから __dirname を削除しようとしています。問題に関する情報を収集します。

console.log(typeof __dirname); // string
console.log(__dirname); // c:\test

プログラムから取得した文字列から正規表現を作成する必要があります。したがって、使用する必要がありますRegExp(myString)。\ をエスケープする正しい方法が \/ fiddleであることを確認するために、jsfiddle のリアリティ チェックを行います。

ブラウザでコードを実行すると、動作します。node.js でコードを実行しましたが、機能しません。__dirnameから削除しようとすることで、これを極端にします。RegExp(__dirname)

文字列がある場合、文字列var s = __dirname.toString() + "myOtherPath/a.cat"の __dirname 部分を s からどのように削除しますか?

4

1 に答える 1

1

あなたの正規表現の例は間違っています。正規表現は、バックスラッシュを削除するためのものです。ただし、文字列自体にはバックスラッシュもスラッシュもありません。

var y = "c:\y";
//"c:y"

バックスラッシュを正しく追加するには、

var y = "c:\\y";
//"c:\y"

あなたの例は、セパレーターが / である Linux で機能し、エスケープする必要はありません。また、正規表現の置換ではなく部分文字列の置換を行っているようです。したがって、単に __dirname を replace に指定するだけで十分です:

var y = __dirname;
var z = y.replace(__dirname,"").toString();
于 2013-10-07T05:16:56.487 に答える