#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()
не экранирует кавычки, но печать строки делает это.