Если вы подключите свой проект Cloud с Firebase , вы можете подключить свои облачные функции HTTP к Firebase Hosting , чтобы получить URL-адреса тщеславия.
Использовать:
str = str.replace(/[“”]/g, '"');
str = str.replace(/[‘’]/g, "'");
или сделать это в одном утверждении:
str = str.replace(/[“”]/g, '"').replace(/[‘’]/g,"'");
В JavaScript (как и во многих других языках) строки неизменяемы - строка "replacement" методы фактически просто возвращают новую строку вместо изменения строки на месте.
Ссылка MDN JavaScript reference для replace
:
Возвращает новую строку с некоторыми или всеми совпадениями шаблона, замененного заменой.
...
Этот метод не изменяет объект String, на который он вызывается. Он просто возвращает новую строку.
blockquote>
replace вернуть результирующую строку
str = str.replace(/["']/, '');
OP не говорит, почему он не работает, но, похоже, проблемы связаны с кодировкой файла. Если у меня есть ANSI-кодированный файл, и я делаю:
var s = "“This is a test” ‘Another test’";
s = s.replace(/[“”]/g, '"').replace(/[‘’]/g,"'");
document.writeln(s);
Я получаю:
"This is a test" "Another test"
Я преобразовал кодировку в UTF-8, исправил умные кавычки (которые разбились когда я изменил кодировку), а затем преобразован обратно в ANSI, и проблема исчезла.
Обратите внимание, что когда я копировал и вставлял двойные и одиночные смарт-цитаты с этой страницы в свой тестовый документ (кодированный ANSI) и запускал этот код:
var s = "“This is a test” ‘Another test’";
for (var i = 0; i < s.length; i++) {
document.writeln(s.charAt(i) + '=' + s.charCodeAt(i));
}
Я обнаружил, что все умные кавычки появились как ? = 63
.
Итак, в ОП определите, откуда берутся интеллектуальные кавычки, и убедитесь, что они - коды символов, которые вы ожидаете от них. Если это не так, подумайте об изменении кодировки источника, чтобы они пришли как “ = 8220
, ” = 8221
, ‘ = 8216
и ’ = 8217
. Используйте мой цикл для проверки источника, если смарт-кавычки отображаются с любыми значениями charCodeAt()
, отличными от перечисленных мной, replace()
не будет работать так, как написано.
Чтобы заменить все обычные кавычки на смарт-кавычки, я использую аналогичную функцию. Вы должны указать CharCode, так как некоторые настройки компьютеров / браузеров по умолчанию могут идентифицировать простые символы по-разному («", ",", ").
Использование CharCode с вызовом символа ASCII, который устранит
Чтобы заменить смарт-кавычки с ОДИНОЧНЫМИ ЦИТАТАМИ
function unSmartQuotify(n){
var name = n;
var apos = String.fromCharCode(39);
while (n.indexOf("'") > -1)
name = name.replace("'" , apos);
return name;
}
Для того, чтобы заменить смарт-кавычки на разные браузеры и операционные системы. Это также полезно для двуязычного использования (акценты и т. д.). найдите другие значения ASCII, которые могут вам понадобиться. Проверьте здесь .