3

だから私は1000行のJavaScriptを持っています。出力できるように、それを Java String に変換する必要があります (viaSystem.out.printlnまたは何でも)。

すべての引用符をエスケープするためのオンライン ツールを探しています...他の特殊文字を変更したくないので、私の特定のニーズに合わせたものがいいでしょう。次のような行:

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

無傷のままでいる必要があります。

この状況では、JavaScript を String に入れる必要があるため、回避策はありません。

4

4 に答える 4

5

Crockford によるquote()functionの実装を紹介するリンクを次に示します。これを使用して、独自の 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

この効果を実現するために、使用可能なツールの1つを使用してファイルを圧縮できます。

YUIコンプレッサーオンライン

ディーンエドワードのパッカー

ダグラス・クロックフォードのJSMIN

于 2009-01-13T20:27:33.400 に答える
0

jsminツールを使用してJavascriptを1行に圧縮できますが(うまくいけば)、引用符をエスケープすることはできません。これは、エディターまたは使用されるサーバー側スクリプト言語での検索/置換を使用して実行できます。

于 2009-01-13T20:27:56.863 に答える
0

そのため、私が試したことはすべて、javascriptを壊してしまいました。私は最終的に次のことを行うことでそれを機能させました:

メモ帳++の使用:

  1. Shift + Tab を何度も押して、すべての行のインデントを解除します

  2. 表示 -> 行末を表示

  3. LF 文字を強調表示し、すべて置換を実行して空の文字列に置き換えます
  4. CR文字について繰り返します

  5. " (引用符) を強調表示し、\" (エスケープされた引用符) ですべて置換を実行します... 置換プロンプトに引用符を入力するだけで、何らかの理由で一部の引用符のみが取得されました。

  6. これで、1 つの非常に長い行ができました...最終的には、1 つの文字列を約 2000 文字の長い行に分割する必要がありました....非常に長い行が IE を殺したり、Java 文字列の制限を破ったりしていました。

于 2009-01-13T22:45:52.590 に答える