Двойные кавычки в строке, сгенерированной Javascript

Я загружаю некоторый текст из файла в приложение node js, используя что-то похожее на следующее:

var retr = fs.readFileSync( __dirname + tmp).toString();

Файлы содержат строку, похожую на: a"a

Я использую эту строку для создания постоянного значения с помощью двойных кавычек:

var MY_CT ="a"a";

Конечно, узел жалуется, что этот код недействителен.

Как я могу правильно преобразовать двойные кавычки для инициализации MY_CT? Я не могу изменить сам исходный файл. Исходный файл не HTML, это обычный текст.


person Jérôme Verstrynge    schedule 09.09.2014    source источник
comment
var MY_CT ='a"a'; Чтобы избежать кавычек, закройте двойные кавычки одинарными и наоборот   -  person Praveen    schedule 09.09.2014
comment
Я использую эту строку для генерации постоянного значения с использованием двойных кавычек — объясните, потому что это действительно единственная интересная часть.   -  person user2864740    schedule 09.09.2014
comment
MY_CT находится в файле Javascript, который можно загрузить со стороны пользователя. Генерируется один раз.   -  person Jérôme Verstrynge    schedule 09.09.2014
comment
Так что исправьте, как он генерируется (и единственная интересная часть, генерация, не показана). История сделана. В любом случае, JSON.stringify(a_string) вернет допустимый строковый литерал JavaScript, включая кавычки (ну, почти).   -  person user2864740    schedule 09.09.2014
comment
Просто предположение: побег? "a\"a"   -  person 23tux    schedule 09.09.2014
comment
@ 23tux Да, но какой код позволяет избежать двойных кавычек в retr? Это мой вопрос.   -  person Jérôme Verstrynge    schedule 09.09.2014
comment
@ 23tux Если файл содержит \", это приведет к "\\"", что является недопустимым синтаксисом.   -  person user2864740    schedule 09.09.2014


Ответы (1)


Я понял, что у вас есть переменная (назовем ее x), которая содержит случайную строку, считанную из файла, которая может содержать одинарные или двойные кавычки, и вы хотите создать файл, содержащий эту строку между кавычками, чтобы ее можно было интерпретируется в JavaScript.

Решение будет:

JSON.stringify(x)

Это вернет в вашем случае: "a\"a", который действителен. Это также будет работать, когда ваш файл содержит одинарные кавычки.

person MrP    schedule 09.09.2014
comment
Существует очень незначительный пограничный случай, но это определенно подход, который я бы изначально использовать из-за удобства и повсеместности. - person user2864740; 09.09.2014