「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("&", "&");
result = result.replaceAll("<", "<");
result = result.replaceAll(">", ">");
result = result.replaceAll("'", "'");
result = result.replaceAll("\"", """);
return result;
}
}
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("&", "&");
result = result.replaceAll("<", "<");
result = result.replaceAll(">", ">");
result = result.replaceAll("'", "'");
result = result.replaceAll("\"", """);
return result;
}
}
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("&", "&"); result = result.replaceAll("<", "<"); result = result.replaceAll(">", ">"); result = result.replaceAll("'", "'"); result = result.replaceAll("\"", """); return result; } }
結果
文字列Aのescape結果:
<input onclick='location.href='test'' type='button' value='back'>
文字列Bのescape結果:
<a href="./sample.jsp?userid=12&name=>yadd&devud=<23">'test2020</a>