【问题标题】:How can I convert JavaScript code into one big Java string如何将 JavaScript 代码转换为一个大的 Java 字符串
【发布时间】:2010-10-01 05:41:37
【问题描述】:

所以我有 1000 行 javascript。我需要将其转换为 Java 字符串以便我可以输出(通过 System.out.println 或其他方式)。

我正在寻找一个在线工具来避开所有引号...适合我特定需求的东西会很好,因为我不想要其他特别的东西字符变了。像这样的行:

var rgx = /(\d+)(\d{3})/;

需要保持原样。

这种情况要求将 JavaScript 放入字符串中,因此请不要使用变通方法。

【问题讨论】:

  • +1 以对抗懦弱的驾车者。这不是一个不清楚或无益的问题。这可能不是一件聪明的事情,但问题已经足够清楚了。

标签: javascript string escaping server-side quotes


【解决方案1】:

这是一个包含Crockford's implementation of the quote() function 的链接。使用它来构建您自己的 JavaScript 转换器。

编辑:我也slightly modified the function默认输出一个ascii安全字符串。

Edit2:只是一个建议:将 JavaScript 保存在外部文件中并在运行时读取它而不是硬编码它可能更聪明...

Edit3:这是一个功能齐全的解决方案 - 只需复制到 .html 文件并替换虚拟脚本:

<script src="quote.js"></script>
<script>
// this is the JavaScript to be converted:
var foo = 'bar';
var spam = 'eggs';

function fancyFunction() {
    return 'cool';
}
</script>
<pre><script>
document.writeln(quote(
    document.getElementsByTagName('script')[1].firstChild.nodeValue, true));
</script></pre>

【讨论】:

  • 这个脚本的更好版本,它也可以转义引号:jsbin.com/ujumus/11
  • 答案中的两个链接不起作用,但@Yahor 的链接仍然可以在js 中查看引用示例。尽管如此,还是值得关注 Crockford's 先生。
  • @Yahor 在js bin 中,我在包含 js 报价文件的 html 中看不到。而且我不知道除了quote之外的其他功能是做什么的。
  • @Timo 同一脚本的简化版jsbin.com/qifisaromi
【解决方案2】:

您可以使用其中一种可用工具来压缩文件以实现此效果:

YUI Compressor Online

Dean Edward's Packer

Douglas Crockford's JSMIN

【讨论】:

  • 我不明白这有什么关系,问题是关于在字符串中转义引号不会使 1000 行 JavaScript 更小。
  • 他们把 1000 行 JavaScript 变成了 1 行 JavaScript。
  • @Diodeus:但这不是 Paul 想要做的——他正在寻找一个函数,它可以为脚本中使用的不安全字符生成适当的转义序列......
【解决方案3】:

您可以使用jsmin 工具将 Javascript 压缩为一行(希望如此),但它不会转义引号。这可以通过在编辑器或使用的服务器端脚本语言中搜索/替换来完成。

【讨论】:

  • 行数相关,String中可以有换行符。
【解决方案4】:

所以我尝试的一切最终都破坏了 javascript。我终于通过执行以下操作使其工作:

使用记事本++:

  1. 多次按 Shift + Tab 以取消缩进每一行

  2. 查看 -> 显示行尾

  3. 突出显示 LF 字符并执行全部替换以替换为空字符串
  4. 重复 CR 字符

  5. 突出显示 "(引号字符)并使用 \"(转义引号)执行全部替换...只是在替换提示中输入引号字符,但出于某种原因仅抓取了一些引号。

  6. 现在你有 1 行非常长...我最终不得不将 1 个字符串分成大约 2000 个字符长的行...。疯狂的长行正在杀死 IE 和/或破坏 Java 字符串限制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-14
    • 2021-10-19
    • 2016-01-29
    相关资源
    最近更新 更多