3

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

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

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

需要保持原样。

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

4

4 回答 4

5

这是一个链接,其中包含Crockford 的quote()函数实现。使用它来构建您自己的 JavaScript 转换器。

编辑:我还稍微修改了函数以默认输出一个 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>
于 2009-01-13T21:20:59.703 回答
1

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

YUI 压缩机在线

迪恩·爱德华的包装工

道格拉斯·克罗克福德的 JSMIN

于 2009-01-13T20:27:33.400 回答
0

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

于 2009-01-13T20:27:56.863 回答
0

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

使用记事本++:

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

  2. 查看 -> 显示行尾

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

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

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

于 2009-01-13T22:45:52.590 回答