2017-01-03 24 views
0

p要素があります。このテキストのHTMLコードでは、のようなエスケープ文字を使用しています。\ n,\,\ tなどJSコードで文字列を取得すると、のように扱われます。\\ n,\\?,\\ t。私はスニペットでREALエスケープ文字に置き換えたい出力は"\文字"をエスケープにjavascriptのどの文字にもエスケープ文字を動的に追加する方法はありますか?

は、私は、文字列からすべての"\\ CHAR"を変更したいです。

すべての文字を別々に置き換えると(下のように)動作しますが、その方法はわかりますすべての文字の前に\が付いています。スラッシュ \ には、次の記号"または$になりますので、しかし、それは動作しません

.replace(/\\(.)/,'\$1') 

.replace(/\\/,'\') 

か何かこのような:

私はこのようなものが必要がコード内でエスケープされました。 \以外のエスケープ文字を挿入する方法はありますか?

​​

+0

'\ *'や '\?'はどういう意味ですか?同様に、どのようなUnicodeコードポイントが必要なのでしょうか? '\ t'や' \ n'のような標準のJavaScriptエスケープコードではありません。 – Pointy

+0

はいわかっています。私はあなたのJS文字列 'console.log(" some \ * text \?sample ")のエスケープ文字を取得するのと同じ効果を得たいだけです。 \\ some * text?sample' –

+0

Pawle、いくつかの\ * text \?sample "' = "some * text?sample" '、あなたの文字列リテラルはリテラルバックスラッシュを含んでいません。 –

答えて

1

あり、あなたが求めているものを行うには直接的な方法でませんが、あなたはそれを行うにはいくつかのコードを書くことができます。

var charmap = { 
    n: "\n", 
    r: "\r", 
    f: "\f", 
    t: "\t", 
    b: "\b" 
}; 
var replaced = string.replace(/\\(.)/g, function(_, char) { 
    return (char in charmap) ? charmap[char] : char; 
}); 

あなたはさらに\uNNNNエスケープを解析したい場合それはもう少し複雑になるでしょう。

+0

これは私が探していたものです、ありがとうPointy! –

関連する問題