Javascript заменить все кавычки

Блог

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

#javascript #replace #special-characters

#javascript #заменить #специальные символы

Вопрос:

Я извлекаю некоторую информацию из базы данных, которая содержит измерения с помощью ‘ и » для обозначения футов и дюймов. Эти символы, находящиеся в моей строке, вызывают у меня проблемы позже, и мне нужно заменить все одинарные и двойные кавычки. Я могу успешно избавиться от одного или другого, выполнив:

 this.Vals.replace(/'/g, "") To get rid of single quotes 
 this.Vals.replace(/"/g, "") To get rid of double quotes 

Как мне избавиться от них обоих в одной строке. Я пытался просто делать

Но тогда ни один из них не будет заменен.

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

1. Оба метода работают как шарм. Я отмечу ответ, как только он мне позволит. Спасибо!

Ответ №1:

Вы не экранируете кавычки в регулярных выражениях

Ответ №2:

 mystring = mystring.replace(/["']/g, ""); 

Ответ №3:

Вам не нужно экранировать его внутри. Вы можете использовать | символ для разграничения поиска.

Источник

Проблема с заданием замена кавычек

Есть текст
One:*’Hi Mary.’ Two:*’Oh, hi.’
One:*’How are you doing?’
Two:*’I’m doing alright. How about you?’
One:*’Not too bad. The weather is great isn’t it?’
Two:*’Yes. It’s absolutely beautiful today.’
One:*’I wish it was like this more frequently.’
Two:*’Me too.’
One:*’So where are you going now?’
Two:*’I’m going to meet a friend of mine at the department store.’
One:*’Going to do a little shopping?’
Two:*’Yeah, I have to buy some presents for my parents.’
One:*’What’s the occasion?’
Two:*’It’s their anniversary.’
One:*’That’s great. Well, you better get going. You don’t want to be late.’
Two:*’I’ll see you next time.’
One:*’Sure. Bye.’

как заменить кавычки с одинарных на двойные. Помогите пожалуйста, напишите код. Кто добрый?))))

Замена кавычек в строке
Здравствуйте. вроде бы простая задача , но как решить. Есть строка(используется как имя.

Автоматическая замена кавычек по логике Word
Не знаю, насколько избита тема, но по данному вопросу ничего толком не нашел в инете. Предлагаю.

Замена двойных кавычек в ячейке Excel
Добрый день. Буду признателен за помощь. Проблема такая: обрабатываю excel файл, и необходимо.

Получение JSON от сервера, замена кавычек
Доброго времени суток. Пишу парсер и столкнулся с проблемой: Посылая запрос на сервер, получаю.

Эксперт JS

var newText = oldText.replace (/'/g, '"'); // а если регулярки ещё не проходили, то можно так: var newText = oldText.split ("'").join ('"');

Эксперт JS

ЦитатаСообщение от Spyk Посмотреть сообщение

я не настолько добр сегодня

прежде чем просить «полный код», могли бы догадаться уточнить — полный код какого варианта вам нужен: с рег/выражениями или без них?

Эксперт JS

I m doing alright. How about you? — тоже нужно менять на » ??

Добавлено через 47 секунд
Да с регулярными

Эксперт JS

ЦитатаСообщение от Spyk Посмотреть сообщение

ну тогда пробуйте применить один из вариантов выше- они оба рабочие
решение самой задачи вам дали- пробуйте вывести на экран

Добавлено через 5 минут
Spyk, дам подсказку:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
var oldText = " One:*'Hi Mary.' Two:*'Oh, hi.' One:*'How are you doing?' Two:*'I'm doing alright. How about you?' One:*'Not too bad. The weather is great isn't it?' Two:*'Yes. It's absolutely beautiful today.' One:*'I wish it was like this more frequently.' Two:*'Me too.' One:*'So where are you going now?' Two:*'I'm going to meet a friend of mine at the department store.' One:*'Going to do a little shopping?' Two:*'Yeah, I have to buy some presents for my parents.' One:*'What's the occasion?' Two:*'It's their anniversary.' One:*'That's great. Well, you better get going. You don't want to be late.' Two:*'I'll see you next time.' One:*'Sure. Bye.' ";
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
let oldText = " One:*'Hi Mary.' Two:*'Oh, hi.' One:*'How are you doing?' Two:*'I'm doing alright. How about you?' One:*'Not too bad. The weather is great isn't it?' Two:*'Yes. It's absolutely beautiful today.' One:*'I wish it was like this more frequently.' Two:*'Me too.' One:*'So where are you going now?' Two:*'I'm going to meet a friend of mine at the department store.' One:*'Going to do a little shopping?' Two:*'Yeah, I have to buy some presents for my parents.' One:*'What's the occasion?' Two:*'It's their anniversary.' One:*'That's great. Well, you better get going. You don't want to be late.' Two:*'I'll see you next time.' One:*'Sure. Bye.' "; let newText = oldText.replace (/'/g, '"'); console.log(oldtext.replace(/'/g, '"'));

Эксперт JS

Spyk,
Вы объявляете переменную oldText а выводите old t ext
Ну и вместо » поставьте `

Добавлено через 48 секунд

ЦитатаСообщение от Mr_Sergo Посмотреть сообщение

Регистр в JS играет очень важную роль, это 2 разные переменные

Добавлено через 2 минуты
Вообщем так:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
let oldText = ` One:*'Hi Mary.' Two:*'Oh, hi.' One:*'How are you doing?' Two:*'I'm doing alright. How about you?' One:*'Not too bad. The weather is great isn't it?' Two:*'Yes. It's absolutely beautiful today.' One:*'I wish it was like this more frequently.' Two:*'Me too.' One:*'So where are you going now?' Two:*'I'm going to meet a friend of mine at the department store.' One:*'Going to do a little shopping?' Two:*'Yeah, I have to buy some presents for my parents.' One:*'What's the occasion?' Two:*'It's their anniversary.' One:*'That's great. Well, you better get going. You don't want to be late.' Two:*'I'll see you next time.' One:*'Sure. Bye.' `; let newText = oldText.replace (/'/g, '"'); console.log(oldText.replace(/'/g, '"'));

Вот такой вопрос ещё а как можно оставить одинарные и двойные кавычки допустим
I»m doing alright
оставить вот так
I’m doing alright
как это сделать? мне вот интересно стало.

Эксперт JS

ЦитатаСообщение от Spyk Посмотреть сообщение

нужно в шаблоне регулярки провести лексический разбор текста:
одинарные кавычки, окаймлённые буквами (т. е. находящиеся в границах слова \b ), не трогать, а прочие (в т. ч. те, после которых имеется символ переноса строки \n и те, перед которыми есть символ звёздочки * ) — заменить двойными
подождите «добрых дядь», захотят помочь — сделают

Эксперт JS

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
let oldText = "One:*'Hi Mary.' Two:*'Oh, hi.'\n" + "One:*'How are you doing?'\n" + "Two:*'I`m doing alright. How about you?'\n" + "One:*'Not too bad. The weather is great isn`t it?'\n" + "Two:*'Yes. It`s absolutely beautiful today.'\n" + "One:*'I wish it was like this more frequently.'\n" + "Two:*'Me too.'\n" + "One:*'So where are you going now?'\n" + "Two:*'I`m going to meet a friend of mine at the department store.'\n" + "One:*'Going to do a little shopping?'\n" + "Two:*'Yeah, I have to buy some presents for my parents.'\n" + "One:*'What`s the occasion?'\n" + "Two:*'It`s their anniversary.'\n" + "One:*'That`s great. Well, you better get going. You don`t want to be late.'\n" + "Two:*'I`ll see you next time.'\n" + "One:*'Sure. Bye\n.'" ; let newText = oldText.replace (/'/g, '"'); console.log(oldText.replace(/'/g, '"'));

Но не знаю насколько вам подойдет такой вариант- по условиям то скорее всего нельзя так делать, подковырка-то вся в этом.

Эксперт JS

ЦитатаСообщение от Mr_Sergo Посмотреть сообщение

тоже так считаю, ибо текст — на аглицком, что предполагает прямое использование \b и \w (что не «проканает» для кириллицы)

Эксперт JS

Кстати, пардон, моя невнимательность, привел код в котором непонятно зачем метод replace() используется два раза. Привожу исправленный код:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
let oldText = "One:*'Hi Mary.' Two:*'Oh, hi.'\n" + "One:*'How are you doing?'\n" + "Two:*'I`m doing alright. How about you?'\n" + "One:*'Not too bad. The weather is great isn`t it?'\n" + "Two:*'Yes. It`s absolutely beautiful today.'\n" + "One:*'I wish it was like this more frequently.'\n" + "Two:*'Me too.'\n" + "One:*'So where are you going now?'\n" + "Two:*'I`m going to meet a friend of mine at the department store.'\n" + "One:*'Going to do a little shopping?'\n" + "Two:*'Yeah, I have to buy some presents for my parents.'\n" + "One:*'What`s the occasion?'\n" + "Two:*'It`s their anniversary.'\n" + "One:*'That`s great. Well, you better get going. You don`t want to be late.'\n" + "Two:*'I`ll see you next time.'\n" + "One:*'Sure. Bye.'" ; let newText = oldText.replace (/'/g, '"'); console.log(newText);

Эксперт JS

ЦитатаСообщение от Spyk Посмотреть сообщение

\n — для новой строки при выводе в консоль, можете их поудалять, но тогда весть текст будет одной строкой в консоли.

Добавлено через 2 минуты
Spyk, самое верное решение было подмечено выше kalabuni но я не очень силен в регулярках

Не понятно. даже читаю в справочнике не понимаю

Добавлено через 22 минуты
kalabuni, не понимаю как это сделать.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
let oldText = ` One:*'Hi Mary.' Two:*'Oh, hi.' One:*'How are you doing?' Two:*'I'm doing alright. How about you?' One:*'Not too bad. The weather is great isn't it?' Two:*'Yes. It's absolutely beautiful today.' One:*'I wish it was like this more frequently.' Two:*'Me too.' One:*'So where are you going now?' Two:*'I'm going to meet a friend of mine at the department store.' One:*'Going to do a little shopping?' Two:*'Yeah, I have to buy some presents for my parents.' One:*'What's the occasion?' Two:*'It's their anniversary.' One:*'That's great. Well, you better get going. You don't want to be late.' Two:*'I'll see you next time.' One:*'Sure. Bye.' `; let newText = oldText.replace (/([^\w]+)'[\.]?/g, '$1"'); console.log(newText);

Кстати, One:*’Hi Mary.’ Two:*’Oh, hi.’ выбивается из общей логики

Добавлено через 5 минут
Даже [\.]? тут ни к чему

Добавлено через 6 минут
Вот решение, для случаев когда мы забыли знак препинания в конце, например:
вместо One:*’I wish it was like this more frequently.’
у нас One:*’I wish it was like this more frequently’

let newText = oldText.replace (/([^\w]+)'|'(\n)/g, '$1"$2');
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
let oldText = ` One:*'Hi Mary.' Two:*'Oh, hi.' One:*'How are you doing?' Two:*'I'm doing alright. How about you?' One:*'Not too bad. The weather is great isn't it?' Two:*'Yes. It's absolutely beautiful today.' One:*'I wish it was like this more frequently' Two:*'Me too.' One:*'So where are you going now?' Two:*'I'm going to meet a friend of mine at the department store.' One:*'Going to do a little shopping?' Two:*'Yeah, I have to buy some presents for my parents.' One:*'What's the occasion?' Two:*'It's their anniversary.' One:*'That's great. Well, you better get going. You don't want to be late.' Two:*'I'll see you next time.' One:*'Sure. Bye.' `; let newText = oldText.replace (/([^\w]+)'|'(\n)/g, '$1"$2'); console.log(newText);

Источник

Замена кавычек в Javascript?

Для веб-приложения, которое я создаю, я буду получать входящие текстовые строки, иногда содержащие кавычки. Так как я собираюсь писать документом, строку нужно изменить либо на апострофы, либо на экранирование. Как бы я это сделал, потому что, когда я пытаюсь это сделать, это, похоже, не работает, особенно я думаю, потому что кавычки строки останавливают работу остальной части скрипта.

Надеюсь, в этом есть какой-то смысл, я новичок в этом, поэтому он может и не иметь смысла. Я постараюсь уточнить, если это будет необходимо. Спасибо!

4 ответа

Экранирование их для HTML:

var escapedString = string.replace(/'/g, "'").replace(/"/g, """); 

Экранирование их для кода JS:

var escapedString = string.replace(/(['"])/g, "\\$1"); 

Если вы генерируете строки Javascript на сервере, вам нужно будет экранировать кавычки и некоторые другие символы.

\' Single quotation mark \" Double quotation mark \\ Backslash \b Backspace \f Form feed \n New line \r Carriage return \t Horizontal tab \ddd Octal sequence (3 digits: ddd) \xdd Hexadecimal sequence (2 digits: dd) \udddd Unicode sequence (4 hex digits: dddd) 

Попробуйте следующий код в некотором HTML:

Если это просто JS, вы можете использовать:

Это удаляет нежелательные кавычки на отправленные пользователем значения.

Вам нужно убежать от них так:

Таким образом, если исходная строка имеет одинарные кавычки, замените каждую одинарную кавычку косой чертой и одинарной кавычкой.

Источник

Читайте также:  Java version error loading
Оцените статью