Использовать:
str = str.replace(/[“”]/g, '"');
str = str.replace(/[‘’]/g, "'");
или сделать это в одном утверждении:
str = str.replace(/[“”]/g, '"').replace(/[‘’]/g,"'");
В JavaScript (как и во многих других языках) строки неизменяемы - строка "replacement" методы фактически просто возвращают новую строку вместо изменения строки на месте.
Ссылка MDN JavaScript reference для replace
:
Возвращает новую строку с некоторыми или всеми совпадениями шаблона, замененного заменой.
...
Этот метод не изменяет объект String, на который он вызывается. Он просто возвращает новую строку.
blockquote>
Похоже, вы верите, что переменные среды являются глобальными. То есть изменение значения в одной программе, такой как работающий терминал, повлияет на значение в другой программе. Это не то, как env vars работает в UNIX-подобных ОС. Каждому процессу предоставляется копия переменных env, предоставленных родительским процессом. То есть они наследуются от родительского процесса.
Тот факт, что вам нужно unset X
в терминале удалить его, означает, что либо он наследуется оболочкой из процесса терминала, либо ваша оболочка устанавливает его. В последнем случае конкретные файлы, читаемые при запуске оболочки, зависят от оболочки. Но / etc / profile читается большинством интерактивных оболочек, так что вы можете захотеть посмотреть там.
Вы говорите, что ваше Java-приложение запущено Tomcat, но не упомянуло, как запускается Tomcat. Это важно по причинам, которые я упомянул выше.
Обратите внимание, что macOS использует демон launchd
для управления большинством сервисов. Эти сервисы настраиваются через файлы "plist". Смотри man launchd.plist
. Эти файлы конфигурации launchd поддерживают определение пользовательских переменных env. Это немного необычно, но стоит посмотреть. Посмотрите, если какие-либо из файлов в ~ / Library / LaunchAgents , / Library / LaunchAgents или / Library / LaunchDaemons , упоминают env var.