因为我发现uglifyJS忽略单引号字符串中的转义双引号。不要逃避双引号
'test \" + foo + \"'
结果
'test " + foo + "'
这仅仅是一个错误的行为。
我有一个.js
,我想缩小和这个数据必须进入JSON。但是JSON API必须是这样的。
{
string: "test \" + foo + \""
}
不
{
string: "test " + foo + ""
}
是否有配置uglifyJS,它不要忽略\"
在我丑化我的javascript的时刻,我所有的\"
用占位符代替的方式。在此之后,我做一个字符串替换所有的占位符让它工作。 但是,然后我的测试不起作用。
编辑:我Javascript
的丑化版本必须是有效JSON
和有效Javascript
为好。
编辑:根据要求,真正的例子的一部分。这段代码必须被忽略,然后放入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。所以我用'.js'作为字符串发送一个有效的JSON。但是在这个'.js'字符串中,我需要用双引号括起来,否则它不会起作用。 – DK1990