Заменить конец строки на конец строки двойные кавычки javascript

#javascript #replace

#javascript #заменить

Вопрос:

Я начал с того, что казалось довольно простым, но получилось по-другому.

У меня есть эта строка, прочитанная из файла:

 "columns:[
{
allowNull:false,
  

Я хочу заменить новую строку новой строкой и двойными кавычками.

итак, я делаю:

 text = text.replace(/r?n/g, 'n"')
  

каким-то образом результат выглядит так:

 "columns:[
"{
"allowNull:false,
  

Я совершенно озадачен тем, откуда берется лишний ». Если я использую одинарную кавычку или другой символ, это работает просто отлично

Что здесь происходит?

Комментарии:

1. У меня работает, этот код не выдает строку с обратной косой чертой в ней.

2. Я предполагаю, что вы смотрите на это в среде, которая показывает вам строку в двойных кавычках, и что она показывает вам, " где " находится a в строке, потому что именно так вы бы сделали это в строковом литерале, заключенном в двойные кавычки.

3. @Sjakelien, ты ищешь, чтобы конечная строка была — columns:[n»{n»AllowNull:false?

4. Переполнение стека — это очень активное место. Когда вы публикуете вопрос (или ответ), пожалуйста, оставайтесь рядом , чтобы вы могли своевременно отвечать на комментарии, редактировать или удалять вопрос по мере необходимости и т.д.

5. @T.J.Crowder Извините, я активный человек, но не только. С другой стороны: кажется, вы были правы. Это была моя среда разработки, пытающаяся показать мне, что происходит. При печати на консоли косые черты исчезли

Ответ №1:

Здесь

 text = text.replace(/r?n/g, 'n"')
  

вы заменяете на n" вместо n . Как @vlaz правильно указывает в комментариях, text.replace не экранируется " на " . Но print функция выполняет.

В любом случае, есть " который может быть не предназначен.

Комментарии:

1. Нет, это replace() не экранирует кавычки, но печать строки делает это.