Подтвердить что ты не робот

Как заменить фигурные кавычки в строке с помощью Javascript?

Я пытаюсь заменить фигурные кавычки:

str = '"I don’t know what you mean by ‘glory,’ " Alice said.';

Использование:

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

Почему это не работает? Как я могу это сделать?

4b9b3361

Ответ 1

Возможно, вам придется (или предпочесть) использовать escape-последовательности Unicode:

var goodQuotes = badQuotes.replace(/[\u2018\u2019]/g, "'");

Что для смешных одиночных кавычек; коды для двойных кавычек - 201C и 201D.

edit — таким образом, чтобы полностью заменить все причудливые кавычки:

var goodQuotes = badQuotes
  .replace(/[\u2018\u2019]/g, "'")
  .replace(/[\u201C\u201D]/g, '"');

Ответ 2

Это не работает, потому что вы пытаетесь заменить апостроф ASCII (или одиночную кавычку) и цитировать символы с пустой строкой, когда то, что на самом деле в вашей исходной строке не является символами ASCII.

str.replace(/[""‘’]/g,'');

работы.

Ответ 3

В настоящее время существует библиотека под названием "SmartQuotes", которая правильно выполнит работу по замене стандартных цитат/апострофов кодера красивыми умными цитатами типографа - лучше, чем использование более простого поиска и замены, поскольку она получает открытие/закрытие правильное.

Ответ 4

Я знаю, что это старый вопрос. Просто хочу что-то добавить. Кавычки, которые вы пытаетесь заменить, называются "Smart Quotes".

Эта функция охватывает большинство из них

public static String replaceSmartQuotes(String str) {
    String retVal = str;
    retVal = retVal.replaceAll( "[\u2018\u2019\u201A\u201B\u2032\u2035]", "'" );
    retVal = retVal.replaceAll("[\u201C\u201D\u201E\u201F\u2033\u2036]","\"");
    return retVal;
}

Надеюсь, это поможет кому-то.