不要用双引号引起来

DK1990

我发现uglifyJS忽略了单引号字符串中的转义双引号。

'test \" + foo + \"'

结果是

'test " + foo + "'

这只是错误的行为。

我有一个.js要缩小的数据,此数据必须输入JSON。但是JSON API必须像这样。

{
    string: "test \" + foo + \""
}

不是

{
    string: "test " + foo + ""
}

有没有一种配置uglifyJS的方法,它不会被忽略 \"

此刻,我将javascript丑化了,并\"用占位符替换了我所有的JavaScript 之后,我用所有占位符替换了字符串以使其正常工作。但是后来我的测试不起作用。

编辑:我的丑化版本Javascript必须是有效的JSON,有效的Javascript为好。

编辑:根据要求,真实示例的一部分。这段代码必须经过丑化处理,然后放入JSON中。

var privacylink = '#privacyButtonURL#';
link = '<a href=\"' + privacylink + '\" target=\"_blank\" style=\"color:#4398b5; text-decoration:underline;\">hear</a>';

uglify版本为

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>'')
coyotte508

有一个关于报价格式github问题

上面链接中给出的解决方案是告诉uglify保留原始报价格式:

$ echo "console.log(\"foo\",'bar');" | uglifyjs --quotes=1
console.log('foo','bar');

$ echo "console.log(\"foo\",'bar');" | uglifyjs --quotes=2
console.log("foo","bar");

$ echo "console.log(\"foo\",'bar');" | uglifyjs --quotes=3
console.log("foo",'bar');

或使用gulp,将以下内容作为uglify.minify()函数的参数

{ output: { quote_style: 3 } }

对于您的特定问题,由于我不确定它是否会保留不必要的转义符(在javascript中),因此可以采用以下解决方案:

  • 通过将所有内容都切换为双引号来从javascript中删除所有单引号,并在必要时对其进行转义
  • 使用上述选项将代码丑化
  • {string: JSON.stringify(code)}

如果你的JavaScript代码必须有某种原因单引号,而是可以通过替换在javascript代码生成的HTML的双引号&#34;&quot;

请注意,我并不认为类似的东西var a = 'abc \" def';首先是有效的javascript。

要研究的另一件事是如何包含文件(未提及),也许有更好的方法将文件直接加载到字符串中,然后可以在上调用JSON.stringify()

编辑

如果您使用的是最新的javascript引擎,则还可以在代码中使用反引号(`),并用双引号或单引号替换。

或者,如果$您的javascript代码中没有也不用反引号,则只需执行以下操作:

{
    string: JSON.stringify(`uglified javascript code`)
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

AWS / JSON / shell脚本:期望属性名称用双引号引起来

Python / Json:期望属性名称用双引号引起来

exec用双引号引起来

在Hibernate中将列名称用双引号引起来

逗号分隔列表中的匹配项,不被单引号或双引号引起来

从字符串中删除所有未用单引号或双引号引起来的空格

ASP.NET Core API发送用双引号引起来的字符串

Python:为什么PostgreSQL表中的列名用双引号引起来?

为什么Microsoft.FSharp.Quotations.Patterns中的模式用双引号引起来?

json文件中的“期望属性名称用双引号引起来”

用双引号引起来时忽略逗号

在IntelliJ的代码编辑器中,将选定的文本用双引号引起来

',(用引号引起来)

如果已经使用了单引号和双引号,该如何用引号引起来?

每个单词都用双引号引起来

Perl-DBI字符串错误地被双引号引起来

请给RegEx帮助-用引号引起来的字符串中包含双引号

用单引号而不是双引号引起来的C ++中的转义序列

用双引号引起来

在逗号之间用引号引起来,但不要在数字之间加引号

将目录用双引号引起来时,grep无法正常工作

基本HTML / JavaScript混淆在Bootstrap弹出窗口中用单引号/双引号引起来

如果仅非空字段用双引号引起来,我如何读取CSV文件?

硒-查找仅用双引号引起来的文本

流程替换是否需要用双引号引起来?

scrapyd异常期望属性名称用双引号引起来

Shell:如何仅在文件中用双引号引起来的字符中替换字符?

用双引号引起来的字符串拆分问题

php:字符串被双引号引起来,而不是单引号引起来。怎么修?