2016-05-03 13 views
0

Ich habe es anders versucht aber noch nicht funktioniert.Wie ReplaceAll funktioniert in Java?

public String SuEscapeHTML(String text){ 
    text=text.replaceAll("/&/g", "&"); 
    // and how to deal with the double quote? text=text.replaceAll("/"/g", """); 
    text=text.replaceAll("/'/g", "'"); 
    text=text.replaceAll("/</g", "&lt;"); 
    text=text.replaceAll("/>/g", "&gt;"); 
    text=text.replaceAll("/\\/g", "&#92;"); 
    System.out.println(text); 
    return text; 
} 

Mit dieser Funktion ändert sich nichts.

So, wie es funktioniert?

+0

Sie sind nicht mit einem regulären Ausdruck verwenden, so verwenden 'String.replace'; es gibt auch mehrere Bibliotheken, die das schon tun (erfinde das Rad nicht neu). –

+1

Siehe Dokumentation für 'replaceAll'. Es dauert nicht '/.../ g' – SLaks

+0

@chanjianyi haben Sie versucht, text = text.replaceAll (" & "," & ")? (Vielleicht wollen Sie das eine letzte) – Tibrogargan

Antwort

2

Die Syntax von Regex, die Sie verwenden, ist von JavaScript. Dies ist, wie Sie es in Java tun

String text = "&>\"<\\'"; //You need to escape " in text also 

System.out.println(text.replaceAll("&", "&amp;")); 
System.out.println(text.replaceAll("\"", "&quot;")); //For quotes 
System.out.println(text.replaceAll("'", "&apos;")); 
System.out.println(text.replaceAll("<", "&lt;")); 
System.out.println(text.replaceAll(">", "&gt;")); 
System.out.println(text.replaceAll("\\\\", "&#92;")); 

Ideone Demo

+1

Der Name der Sprache ist Java, nicht JAVA; es ist kein Akronym. Ansonsten, gute Antwort. –