Нужно сделать регулярными выражениями. Как написать шаблон для замены кавычек c " на ' - только тех которые находятся внутри слов?
var text = 'Эту "задачу" "нужн"о сделать" регулярным"и выраже"ниями';
var pattern = '/???/';
var result = text.replace(pattern, "'");
console.log(result);
Так как кавычка внутри слова, слева и справа от нее должны быть буквы.
Поэтому для русского языка регулярка может иметь вид /([а-яё])"([а-яё])/g.
Шаблон замены: "$1'$2" → взять первую и вторую группы (буквы между которыми была кавычка) и поставить между ними одинарную кавычку:
var text = 'Эту "задачу" "нужн"о сделать" регулярным"и выраже"ниями';
var pattern = /([а-яё])"([а-яё])/g;
var result = text.replace(pattern, "$1'$2");
console.log(result);
Решение, которое будет работать во всех браузерах, не должно содержать блока предварительного просмотра назад. Кроме того, чтобы заменить кавычки, которые следуют друг за другом через одну букву, без блока предварительного просмотра вперёд не обойтись.
Поэтому лучшее решение будет
var text = 'Эту "задачу" "ну"ж"н"о сделать" регулярным"и выраже"ниями';
var pattern = /([а-яё])"(?=[а-яё])/ig;
var result = text.replace(pattern, "$1'");
console.log(result);
См. демо регулярного выражения.
Подробности
([а-яё]) - Захватывающая группа №1 (ссылка на значение этой группы из шаблона замены осуществляется с помощью $1): буква русского алфавита" - двойная кавычка(?=[а-яё]) - блок предварительного просмотра вперёд, который проверяет следующее условие: сразу после знака " должна стоять буква русского алфавитаig - модификаторы
i - регистронезависимость включенаg - поиск всех вхождений включенДля браузеров и сред, поддерживающих стандарт ECMAScript 2018, можно использовать следующее решение для любого языка:
var pattern = /(?<=\p{L})"(?=\p{L})/gu;
var result = 'Эту "задачу" "ну"ж"н"о сделать" регулярным"и выраже"ниями'.replace(pattern, "'");
console.log(result);
\p{L} находит любую букву.
var text = 'Эту "задачу" "нужн"о сделать" регулярным"и выраже"ниями';
var result = text.replace(/(?<=\S)\"(?=\S)/g, "\'");
console.log(result);
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости