Как заменить фигурные кавычки в строке с помощью Javascript? - PullRequest
16 голосов
/ 22 февраля 2012

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

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

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

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

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

Ответы [ 3 ]

49 голосов
/ 22 февраля 2012

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

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

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

изменить & mdash; таким образом, чтобы полностью заменить все причудливые цитаты:

var goodQuotes = badQuotes
  .replace(/[\u2018\u2019]/g, "'")
  .replace(/[\u201C\u201D]/g, '"');
3 голосов
/ 22 февраля 2012

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

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

работает.

0 голосов
/ 03 ноября 2015

Я знаю, что это старый вопрос. Просто хочу что-то добавить. Цитаты, которые вы пытаетесь заменить, называются «Умные цитаты».

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

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;
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...