「Java」String.replaceAll()メソッドでhtml特殊文字エスケープ処理をするサンプル

説明
特殊文字 > < & \ '
public String replaceAll(String regex,String replacement)
指定された正規表現に一致する、この文字列の各部分文字列に対し、
指定された置換を実行します。
Javaコード

package com.arkgame.study;

public class EscapHtmlDemo {

      public static void main(String[] args) {

            String cftA = "<input onclick='location.href='test'' type='button' value='back'>";
            String resA = escapeHtml(cftA);
            System.out.println("文字列Aのescape結果:\n" + resA);

            String cftB = "<a href=\"./sample.jsp?userid=12&name=>yadd&devud=<23\">'test2020</a>";
            String resB = escapeHtml(cftB);
            System.out.println("文字列Bのescape結果:\n" + resB);


      }

      // エスケープ処理
      public static String escapeHtml(String target) {
            if (target.length() == 0 || target == null) {
                  return "";
            }
            String result = target;
            result = result.replaceAll("&", "&amp;");
            result = result.replaceAll("<", "&lt;");
            result = result.replaceAll(">", "&gt;");
            result = result.replaceAll("'", "&#39;");
            result = result.replaceAll("\"", "&quot;");
            return result;
      }
}

結果
文字列Aのescape結果:
&lt;input onclick=&#39;location.href=&#39;test&#39;&#39; type=&#39;button&#39; value=&#39;back&#39;&gt;
文字列Bのescape結果:
&lt;a href=&quot;./sample.jsp?userid=12&amp;name=&gt;yadd&amp;devud=&lt;23&quot;&gt;&#39;test2020&lt;/a&gt;

Java

Posted by arkgame