たとえば、多くのコンマ演算子を持つJavaScriptのチャンクがあります
"i".toString(), "e".toString(), "a".toString();
これらをセミコロンに変換する JavaScript の方法はありますか?
"i".toString(); "e".toString(); "a".toString();
たとえば、多くのコンマ演算子を持つJavaScriptのチャンクがあります
"i".toString(), "e".toString(), "a".toString();
これらをセミコロンに変換する JavaScript の方法はありますか?
"i".toString(); "e".toString(); "a".toString();
これは警官の答えのように思えるかもしれません...しかし、私はそれを試さないことをお勧めします. それを変更するために何らかの文字列操作を行うことは事実上不可能です。関数定義の引数リストに加えて、文字列リテラル、正規表現リテラル、関数呼び出し、配列リテラル、オブジェクト リテラル、変数宣言などのテキストもスキップする必要があります。正規表現はそれを処理できず、キーワードが処理できないようにオンとオフを切り替えます。
これらを実際に変換したい場合は、実際にコードを解析して、どれがコンマ演算子であるかを判断する必要があります。さらに、カンマの存在が関連する場合もあります。
var a = 10, 20;
と同じではありません
var a = 10; 20;
例えば。
ですから、実際に試してはいけないと思います。しかし、あなたが望むなら、JavaScript パーサーを検索することから始めます (またはパーサーを作成することは、それほど難しいことではありませんが、おそらく 1 日の大部分を要し、まだバグがある可能性があります)。Google のようなより高度なミニファイヤにはパーサーが含まれていると確信しています。おそらくそのソースが役立つでしょう。
次に、それを解析して実際のコンマ式を見つけます。戻り値を使用する場合は、そのままにしておきます。そうでない場合は、それらを式ステートメントに置き換えてから、ソース コード文字列を再生成します。この時点でも、スコープのインデントに基づいてフォーマットすることができます。なかなかいい感じに仕上がるかもしれません。かなりの作業量になります。
JS で書かれたパーサー ライブラリは次のとおりです: http://esprima.org/ (このコメントについては @torazaburo に感謝します)