私は String: を持っています
c:\build\target
。
これは外部ソースから取得され、そのまま直接渡されます。JavaScriptで使用する前に変更することはできません。
ただし\b
、 と\t
は特殊文字ですが、解釈されるのではなく、見た目どおりに印刷 (または操作) したいだけですc:uild arget
。
それはどのように可能ですか?
私は String: を持っています
c:\build\target
。
これは外部ソースから取得され、そのまま直接渡されます。JavaScriptで使用する前に変更することはできません。
ただし\b
、 と\t
は特殊文字ですが、解釈されるのではなく、見た目どおりに印刷 (または操作) したいだけですc:uild arget
。
それはどのように可能ですか?
あなたは試すことができます:
string = "c:\build\target";
string = string.replace(/[\n]/g,'\\n');
string = string.replace(/[\r]/g,'\\r');
string = string.replace(/[\t]/g,'\\t');
string = string.replace(/[\b]/g,'\\b');
string = string.replace(/[\f]/g,'\\f');
console.log(string);
ただし、他のすべての特殊文字をキャッチする必要があるため、他の問題が発生する可能性があります
最も簡単な方法は、すべてのバックスラッシュをエスケープすることです (したがって、バックスラッシュは文字通りのバックスラッシュとして解釈されます)。
リモート システム自体でこれを行うことができない場合は、データが Javascript で解析されているため、これを行う必要があります。明らかに、Javascript 文字列が既にある場合、バックスラッシュは既に欠落しています。
そのため、「リモート文字列」(\
文字の後に が続くb
) から「Javascript 文字列」(\b
印刷できない文字を含む) に移行する時点で、バックスラッシュに注意する必要があります。また、エスケープ プレフィックスとしてではなく、文字どおりのバックスラッシュ (つまり、エスケープ) として渡されるようにしてください。