2017-09-22 2 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합니다 키우면 개인 키

복사 및 붙여 넣기 때문에 사용자는 그래서 예를 들어 \ n을 입력합니다 입력에 의해 생성 될 문자열의 문자열이며 위와 같은 결과를 출력합니다. @Crogo는이 로그에서 \ n을 보았 기 때문에 이미 이스케이프 처리되었음을 아래에서 언급했습니다!

hello how are you\nvery good :) 

을하지만 나는이 캐릭터와 JSON 파일의 일부 요소를 교체 할 내가 내 파일을 작성하려면이 옵션을 사용합니다 즉이는 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 나던 새 줄을 만들거나 .. 이스케이프 것을 나를 위해 매우 중요 오기 ' 이중 백 슬래시 때문에 더 이상 작동하지 않습니다.

'hello how are you\nvery good :)' 

옵션 값으로 FS와 함께 탈출 해제하는 방법이 있나요 아니면 다른 방법을 알고 : 그것은 JSON에서 다음과 같이해야합니까? :)

+0

대신 세 개의 백 슬래시를 사용해보십시오. '\\\ n' –

+0

테스트 문자열은 사용자가 설정하는 양식에 의해 생성되므로 스크립트로 대체해야하지만이 스크립트는 나를 위해 작동하지 않습니다 test = test.replace (/ [\\]/\ gmi, '\')는 \\ 또는 \\ 의 테스트 결과가 test.replace (/ [\\]/gmi, '\\')가 \\ n이됩니다. test = test.replace (/ [\\]/gmi, '\\\\')가 작동하지 않습니다. \\\\ 어떻게 문자열 테스트의 정규식으로 바꿀 수 있습니까? 또한 문자열 테스트가 기본으로 맞다고 생각합니다. fs.writeFile은 \ n을 이스케이프 처리합니다. – t33n

+0

JSON에서 사용되는 정확한 이스케이프 처리에 신경 쓸 이유가 없습니다. –

답변

0

@Crogo 님이 대답했습니다.

그래서 당신의 텍스트 영역에서 당신은 기본적으로 다음 "순수"LINEBREAK로 포함하도록 문자열/JSON에 대한

very good :) 

을 입력

hello how are you 

다음 Enter 키를 입력해야합니다. 당신이 그렇지 않으면 계속 직접

hello how are you\nvery good :) 

여전히 그것은 당신의 JSON에 그런 식으로 쓴 입력 할 경우 저장하기 전에 양식을 추출 문자열을 변환해야합니다

test = test.replace(/\\n/gm, '\n') 
관련 문제