残念ながら、私のプロジェクトでは、次のような JavaScript で多くの HTML コードを生成します。
var html = new StringBuffer();
html.append("<td class=\"gr-my-deals\"><a href=\"").append(deal.url).append("\" target=\"_blank\">").append(deal.description).append("</a></td>");
これについて 2 つの具体的な不満があります。
- HTML 文字列内でのエスケープされた二重引用符 (\”) の使用。読みやすくするために、これらを一重引用符 (') に置き換える必要があります。
- JavaScript 文字列連結演算子「+」の代わりに .append() を使用</li>
これらの両方の提案を適用すると、次の同等のコード行が生成されます。これは、はるかに読みやすいと思います。
var html = "<td class=’gr-my-deals’><a href=’" + deal.url + "’ target=’_blank’>" + deal.description + "</a></td>";
私は今、コードの最初の行を 2 行目に自動的に変換する方法を探しています。これまでに思いついたのは、すべての Javascript コードに対して次の検索と置換を実行することだけです。
Find: ).append(
Replace: +
これにより、上記のコード行が次のように変換されます。
html.append("<td class=\"gr-my-deals\"><a href=\"" + deal.url + "\" target=\"_blank\">" + deal.description + "</a></td>)";
これにより、最初の 'append()' ステートメント以外は安全に削除されます。残念ながら、エスケープされた二重引用符を単一引用符に自動的に変換する安全な方法は思いつきません。場合によっては、エスケープされた二重引用符を実際に使用する必要があるため、単純に検索/置換を行うことはできないことに注意してください。通常、これは、ネストされた JS を含む HTML を生成していて、その JS に文字列パラメーターが含まれている場合です。
function makeLink(stringParam) {
var sb = new StringBuffer();
sb.append("<a href=\"JavaScript:myFunc('" + stringParam + "');\">");
}
私の質問は(最終的に)次のとおりです。
- 「append()」への呼び出しを「+」に安全に置き換えるより良い方法はありますか
- エスケープされた二重引用符を単一引用符、正規表現に安全に置き換える方法はありますか?
乾杯、ドン