Einfache HTML-Spezialchars in Java

Erstellen Sie HTML-Spezialchars, ohne den Zeichencode in Java zu berücksichtigen

Ich habe es geschrieben, weil es notwendig wurde, die Escape-Verarbeitung in einer Umgebung durchzuführen, in der externe Bibliotheken nicht verwendet werden können. Umgebung ist Windows und Java 10

Da Standardargumente nicht für Java verwendet werden können, ist es besser zu überladen, um "ENT_QUOTES" als Zeichenfolgenargument zu erhalten, wenn Sie in Zukunft über Zeichencodes nachdenken.

function



public class Escape{

	
	/**
		& to &
		" to " if flag.equals("ENT_COMPAT") flag.equals("ENT_QUOTES")
		' to '	if flag.equals("ENT_QUOTES")
		< to &lt;
		> to &gt;
	*/
	public static String htmlspecialchars(String s, String flag){
		String ret = s.replace("&","&amp;").replace("<","&lt;").replace(">","&gt;");
		if(flag.equals("ENT_COMPAT")){
			return ret.replace("\"", "&quot;");
		}else if(flag.equals("ENT_QUOTES")){
			return ret.replace("'", "&apos;").replace("\"","&quot;");
		}else if(flag.equals("ENT_NOQUOTES")){
			return ret;
		}
		return ret;
	}
}

Es ist nicht sehr hübsch, ich hatte das Gefühl, dass "return ret" in Ordnung wäre, wenn "ENT_COMPAT" und "ENT_QUOTES" nicht angegeben würden.

main


public static void main(String[] args){
		System.out.println(htmlspecialchars("<script>alert(\"1\");</script>","ENT_COMPAT"));
		System.out.println(htmlspecialchars("<script>alert(\"1\");</script>","ENT_NOQUOTES"));
		System.out.println(htmlspecialchars("<script>alert('1');</script>","ENT_QUOTES"));
	}

Ergebnis


>java Escape
&lt;script&gt;alert(&quot;1&quot;);&lt;/script&gt;
&lt;script&gt;alert("1");&lt;/script&gt;
&lt;script&gt;alert(&apos;1&apos;);&lt;/script&gt;

Recommended Posts

Einfache HTML-Spezialchars in Java
2 Implementieren Sie eine einfache Syntaxanalyse in Java
Sehr einfacher Eingangsempfang in Java
3 Implementieren Sie einen einfachen Interpreter in Java
Ein einfaches Beispiel für Rückrufe in Java
1 Implementieren Sie eine einfache Phrasenanalyse in Java
Partisierung in Java
Änderungen in Java 11
Janken in Java
Umfangsrate in Java
FizzBuzz in Java
Lesen Sie JSON in Java
Interpreter-Implementierung durch Java
Machen Sie einen Blackjack mit Java
Janken App in Java
NVL-artiger Typ in Java
Verbinden Sie Arrays in Java
"Hallo Welt" in Java
Aufrufbare Schnittstelle in Java
Kommentare in der Java-Quelle
Azure funktioniert in Java
Formatieren Sie XML in Java
Boyer-Moore-Implementierung in Java
Hallo Welt in Java
Verwenden Sie OpenCV mit Java
WebApi-Memorandum mit Java
Typbestimmung in Java
Befehle in Java ausführen (Ping)
Verschiedene Threads in Java
Implementierung der Heap-Sortierung (in Java)
Zabbix API in Java
ASCII-Kunst in Java
Listen in Java vergleichen
POST JSON in Java
Fehler in Java ausdrücken
Erstellen Sie JSON in Java
Datumsmanipulation in Java 8
Was ist neu in Java 8?
Verwenden Sie PreparedStatement in Java
Was ist neu in Java 9,10,11
Parallele Ausführung in Java
Ich habe ein einfaches Berechnungsproblemspiel in Java gemacht
[Persönliches Memo] Erstellen Sie eine einfache, tiefe Kopie mit Java
Versuchen Sie es mit RocksDB mit Java
Lesen Sie Binärdateien in Java 1
Vermeiden Sie den Fehler, den Yuma in Java gemacht hat
Holen Sie sich EXIF-Informationen in Java
[Neta] Sleep Sort in Java
Bearbeiten von ini in Java: ini4j
Java-Geschichte in dieser Welt
Segfo Java in 6 Zeilen
Versuchen Sie, JavaScript in Java aufzurufen
Lassen Sie uns Spresense mit Java entwickeln (1)
Probieren Sie den Funktionstyp in Java aus! ①
Ich habe ein Roulette in Java gemacht.
Implementierung der zweistufigen Authentifizierung in Java
Refactoring: Machen Sie Blackjack in Java