23

ファイルパスを含む文字列があります。すべての 1 つの円記号 ("\") を 2 つの円記号 ("\\") に置き換えたい。

   var replaceableString = "c:\asd\flkj\klsd\ffjkl";
   var part = /@"\\"/g;
   var filePath = replaceableString .replace(part, /@"\\"/);
   console.log(filePath);

コンソールはそれを見せてくれました。

   c:asdlkjklsdfjkl

このようなものを見つけましたが、残念ながらうまくいきませんでした。 \ を \\ に置き換える

4

10 に答える 10

3

最初に文字列をエンコードします

次に、すべての %5C を %5C%5C に置き換えます

最後に文字列をデコードします

var result = encodeURI(input);
result=decodeURI(result.replace(/%5C/g,"%5C%5C"));
于 2016-08-29T12:54:57.597 に答える
0

バックスラッシュを検索しようとしている文字列の内容を制御できず、SINGLE\値が含まれている場合 (たとえば、変数 myPath には が含まれていますC:\Some\Folder\file.jpg)、実際には JavaScript で単一のバックスラッシュを として参照できますString.fromCharCode(92)

上記のファイルパスの例でファイル名を取得するには。

var justTheName = myPath.split(String.fromCharCode(92)).pop();
于 2014-03-25T04:54:07.060 に答える
0

文字列一致の場合は、encodeURIComponent、decodeURIComponent を使用することをお勧めします。

match(encodeURIComponent(inputString));

function match(input)
{

for(i=0; i<arr.length; i++)
{
if(arr[i] == decodeURIComponent(input))
return true;
else return false;
}
}
于 2014-05-12T14:52:22.010 に答える
-1

文字列内の単一のバック スラッシュの場合、javascript の replace メソッドでは、単一のバック スラッシュを置き換えることができませんでした。

代わりに、分割された文字列の配列を返す分割メソッドを使用し、バックスラッシュなしで文字列を連結する必要がありました (または、それを置き換えたいものは何でも)。

解決策 (バックスラッシュをアンダースコアに置き換え):

var splitText = stringWithBackslash.split('\\');
var updatedText = splitText[0] + '_' + splitText[1];
于 2016-05-11T20:03:48.083 に答える