, как я выяснил, uglifyJS игнорирует скрытые двойные кавычки в одной строке кавычек.Не избегайте двойных кавычек
'test \" + foo + \"'
приводит
'test " + foo + "'
Это просто неправильное поведение.
У меня есть .js
, который я хочу минимизировать, и эти данные должны войти в JSON. Но API JSON должен быть таким.
{
string: "test \" + foo + \""
}
не
{
string: "test " + foo + ""
}
Есть ли способ настроить uglifyJS, что он не игнорировать \"
На данный момент я уродовать мой JavaScript и заменить все мои \"
с заполнителями. После этого я заменю строку на все заполнители, чтобы заставить ее работать. Но тогда мои тесты не работают.
EDIT: уродовать версия моего Javascript
должен быть действительным JSON
и действительным Javascript
, а также.
EDIT: В соответствии с запросом, часть настоящего примера. Этот код должен быть очищен, а затем помещен в JSON.
var privacylink = '#privacyButtonURL#';
link = '<a href=\"' + privacylink + '\" target=\"_blank\" style=\"color:#4398b5; text-decoration:underline;\">hear</a>';
уродовать версия будет
var a="#privacyButtonURL#", b='<a href="'+a+'" target="_blank" style="color:#4398b5; text-decoration:underline;">hear</a>'
Это не будет работать.
JSON.stringify('var a="#privacyButtonURL#", b='<a href="'+a+'" target="_blank" style="color:#4398b5; text-decoration:underline;">hear</a>'')
«Это это просто неправильное поведение »- это не так. В JavaScript в этом контексте оба утверждения означают одно и то же. Ваша проблема в том, что вы зависите от конкретного форматирования JS, чтобы вы могли выстроить JSON из него, объединив строки. Вместо этого используйте соответствующую библиотеку JSON. – Quentin
'JSON.stringify ({string: 'test" + foo + "'})' – coyotte508
Это не проблема. Я динамически создаю '.js', который я хочу отправить на мой сервер. API моего бэкэнда принимает только JSON. Поэтому я отправляю в него действительный JSON с символом '.js' в виде строки. Но в этой строке '.js' мне нужны экранированные двойные кавычки, иначе они не работают. – DK1990