2

私は String: を持っています c:\build\target

これは外部ソースから取得され、そのまま直接渡されます。JavaScriptで使用する前に変更することはできません。

ただし\b、 と\tは特殊文字ですが、解釈されるのではなく、見た目どおりに印刷 (または操作) したいだけですc:uild arget

それはどのように可能ですか?

4

3 に答える 3

2

あなたは試すことができます:

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);​

ただし、他のすべての特殊文字をキャッチする必要があるため、他の問題が発生する可能性があります

于 2012-10-26T15:06:21.153 に答える
0

最も簡単な方法は、すべてのバックスラッシュをエスケープすることです (したがって、バックスラッシュは文字通りのバックスラッシュとして解釈されます)。

リモート システム自体でこれを行うことができない場合は、データが Javascript で解析されているため、これを行う必要があります。明らかに、Javascript 文字列が既にある場合、バックスラッシュは既に欠落しています

そのため、「リモート文字列」(\文字の後に が続くb) から「Javascript 文字列」(\b印刷できない文字を含む) に移行する時点で、バックスラッシュに注意する必要があります。また、エスケープ プレフィックスとしてではなく、文字どおりのバックスラッシュ (つまり、エスケープ) として渡されるようにしてください。

于 2012-10-26T14:58:22.503 に答える