所以我有 1000 行 javascript。我需要将其转换为 Java 字符串,以便我可以输出(通过System.out.println
或其他方式)。
我正在寻找一个在线工具来逃避所有的引号......适合我的特定需求的东西会很好,因为我不希望改变其他特殊字符。像这样的行:
var rgx = /(\d+)(\d{3})/;
需要保持原样。
这种情况要求将 JavaScript 放入字符串中,因此请不要使用变通方法。
所以我有 1000 行 javascript。我需要将其转换为 Java 字符串,以便我可以输出(通过System.out.println
或其他方式)。
我正在寻找一个在线工具来逃避所有的引号......适合我的特定需求的东西会很好,因为我不希望改变其他特殊字符。像这样的行:
var rgx = /(\d+)(\d{3})/;
需要保持原样。
这种情况要求将 JavaScript 放入字符串中,因此请不要使用变通方法。
这是一个链接,其中包含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>
您可以使用jsmin工具将 Javascript 压缩为一行(希望如此),但它不会转义引号。这可以通过在编辑器或使用的服务器端脚本语言中搜索/替换来完成。
所以我尝试的一切最终都破坏了javascript。我终于通过执行以下操作使其工作:
使用记事本++:
多次按 Shift + Tab 以取消缩进每一行
查看 -> 显示行尾
重复 CR 字符
突出显示一个“(引号字符)并用\”(转义引号)执行全部替换......只是在替换提示中输入引号字符只是出于某种原因抓住了一些引号。
现在你有 1 条非常长的行...我最终不得不将 1 个字符串分成大约 2000 个字符长的行...。疯狂的长行正在杀死 IE 和/或打破 Java 字符串限制。