2017-09-22 20 views
0

私はnode.jsを有効にしたウェブサイトを持っています。fs.writeFile nのようなものでエスケープを無効にする方法

ユーザーはフォームからキーを入力し、スクリプトでこのような文字列を取得します。

hello how are you\nvery good :) 

HTMLはこの

<form id="FORM_Key"> 
     <button id="send_Key">Save</button> 
     <label for="Textarea_Key"> 
     <input type="text" id="Textarea_Key" class="dropdown_textarea" name="Textarea_Key" placeholder="Enter Private Key.." onclick="addHandler_Key();"> 
     </label> 
    </form> 

のように見えるその後、私はにconsole.logを作る:it'sは秘密鍵

からコピーして貼り付けているため、ユーザはその一例として、\ nを入力します入力によって生成され、上のような同じ出力です。 @Crogoは、このログで\ nを見たので既に脱出されていることを以下にコメントしました!つまりこれはJSONファイルでのように見える必要があります方法です。

hello how are you\nvery good :) 

しかし、私はこの文字列をJSONファイルのいくつかの要素を交換したいと私は私のファイルを書き込むために、これを使用しています。

var test = $('#Textarea_Key').val() 


var json_configFile = require('C:/user/default.json', 'utf8') 


json_configFile['AppSettings'].appAuth.Key = test 
var gangwithme = JSON.stringify(json_configFile, null, 4) 


var options = { flag : 'w' }; 
fs.writeFile('C:/user/default.json', gangwithme, options, function (err) { 
    if (err) { 
    console.log('Error: ' + err) 
    } 
    else { 
    console.log('SUCCESS') 
    } 
}); 

すべてが機能し、ファイルが編集されて保存されます。 しかし、私の認証キーが今であることをので、それは問題がある。この

'hello how are you\\nvery good :)' 

のように見えるファイルで\ nはdoesn't新しい行を作成したり... エスケープされることを私のために非常に重要it's二重のバックスラッシュのためにもう働かない。

'hello how are you\nvery good :)' 

オプション値としてFSとエスケープを無効にする方法はありますか、別の方法を知っていますか:それはJSONでこのように見なければなりませんか? :)

+0

代わりに3つのバックスラッシュを試してみてください。 '\\\ n' –

+0

テスト文字列は、ユーザが設定するフォームによって生成されるので、スクリプトと置き換える必要がありますが、これは私のためには機能しません。 test = test.replace(/ [\\]/gmi、 '\')は\\ をエスケープしないために使用できませんOR test = test.replace(/ [\\]/gmi、 '\\')は再び\になりますOR test = test.replace(/ [\\]/gmi、 '\\\\')は動作しません。\\\\ 文字列テストの正規表現で置き換えるにはどうすればよいですか?また、私は文字列テストがデフォルトで正しいと思うfs.writeFileは\ nをエスケープします – t33n

+0

JSONで使用されている正確なエスケープを気にする理由はありません。 –

答えて

0

答えは@Crogoによって与えられましたありがとうございます!

は、だからあなたのテキストエリアにあなたは基本的に

hello how are you 

を入力する必要がありますし、「純粋な」改行としてそれを含めるように文字列/ JSONのため

very good :) 

を入力し、Enterキーを押します。あなたは

hello how are you\nvery good :) 

を入力し、まだそれはあなたのJSONにそのように書かれているそれ以外の場合は、そのまま続行したい場合は、保存する前に、フォーム抽出文字列を変換する必要があります。

test = test.replace(/\\n/gm, '\n') 
関連する問題