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에서 다음과 같이해야합니까? :)
대신 세 개의 백 슬래시를 사용해보십시오. '\\\ n' –
테스트 문자열은 사용자가 설정하는 양식에 의해 생성되므로 스크립트로 대체해야하지만이 스크립트는 나를 위해 작동하지 않습니다 test = test.replace (/ [\\]/\ gmi, '\')는 \\ 또는 \\ 의 테스트 결과가 test.replace (/ [\\]/gmi, '\\')가 \\ n이됩니다. test = test.replace (/ [\\]/gmi, '\\\\')가 작동하지 않습니다. \\\\ 어떻게 문자열 테스트의 정규식으로 바꿀 수 있습니까? 또한 문자열 테스트가 기본으로 맞다고 생각합니다. fs.writeFile은 \ n을 이스케이프 처리합니다. – t33n
JSON에서 사용되는 정확한 이스케이프 처리에 신경 쓸 이유가 없습니다. –