public final class JavaScriptEscape extends Object
Utility class for performing JavaScript escape/unescape operations.
Configuration of escape/unescape operationsEscape operations can be (optionally) configured by means of:
JavaScriptEscapeLevel
enum.JavaScriptEscapeType
enum.Unescape operations need no configuration parameters. Unescape operations will always perform complete unescape of SECs (\n), x-based (\xE1) and u-based (\u00E1) hexadecimal escapes, and even octal escapes (\057, which are deprecated since ECMAScript v5 and therefore not used for escaping).
FeaturesSpecific features of the JavaScript escape/unescape operations performed by means of this class:
There are two different input/output modes that can be used in escape/unescape operations:
The following references apply:
Modifier and Type | Method and Description |
---|---|
static void |
escapeJavaScript(char[] text,
int offset,
int len,
Writer writer)
Perform a JavaScript level 2 (basic set and all non-ASCII chars) escape operation
on a char[] input.
|
static void |
escapeJavaScript(char[] text,
int offset,
int len,
Writer writer,
JavaScriptEscapeType type,
JavaScriptEscapeLevel level)
Perform a (configurable) JavaScript escape operation on a char[] input.
|
static String |
escapeJavaScript(String text)
Perform a JavaScript level 2 (basic set and all non-ASCII chars) escape operation
on a String input.
|
static String |
escapeJavaScript(String text,
JavaScriptEscapeType type,
JavaScriptEscapeLevel level)
Perform a (configurable) JavaScript escape operation on a String input.
|
static void |
escapeJavaScriptMinimal(char[] text,
int offset,
int len,
Writer writer)
Perform a JavaScript level 1 (only basic set) escape operation
on a char[] input.
|
static String |
escapeJavaScriptMinimal(String text)
Perform a JavaScript level 1 (only basic set) escape operation
on a String input.
|
static void |
unescapeJavaScript(char[] text,
int offset,
int len,
Writer writer)
Perform a JavaScript unescape operation on a char[] input.
|
static String |
unescapeJavaScript(String text)
Perform a JavaScript unescape operation on a String input.
|
public static String escapeJavaScriptMinimal(String text)
Perform a JavaScript level 1 (only basic set) escape operation on a String input.
Level 1 means this method will only escape the JavaScript basic escape set:
This method calls escapeJavaScript(String, JavaScriptEscapeType, JavaScriptEscapeLevel)
with the following preconfigured values:
JavaScriptEscapeType.SINGLE_ESCAPE_CHARS_DEFAULT_TO_XHEXA_AND_UHEXA
JavaScriptEscapeLevel.LEVEL_1_BASIC_ESCAPE_SET
This method is thread-safe.
text
- the String to be escaped.public static String escapeJavaScript(String text)
Perform a JavaScript level 2 (basic set and all non-ASCII chars) escape operation on a String input.
Level 2 means this method will escape:
This escape will be performed by using the Single Escape Chars whenever possible. For escaped characters that do not have an associated SEC, default to using \xFF Hexadecimal Escapes if possible (characters <= U+00FF), then default to \uFFFF Hexadecimal Escapes. This type of escape produces the smallest escaped string possible.
This method calls escapeJavaScript(String, JavaScriptEscapeType, JavaScriptEscapeLevel)
with the following preconfigured values:
JavaScriptEscapeType.SINGLE_ESCAPE_CHARS_DEFAULT_TO_XHEXA_AND_UHEXA
JavaScriptEscapeLevel.LEVEL_2_ALL_NON_ASCII_PLUS_BASIC_ESCAPE_SET
This method is thread-safe.
text
- the String to be escaped.public static String escapeJavaScript(String text, JavaScriptEscapeType type, JavaScriptEscapeLevel level)
Perform a (configurable) JavaScript escape operation on a String input.
This method will perform an escape operation according to the specified
JavaScriptEscapeType
and
JavaScriptEscapeLevel
argument values.
All other String-based escapeJavaScript*(...) methods call this one with preconfigured type and level values.
This method is thread-safe.
text
- the String to be escaped.type
- the type of escape operation to be performed, see
JavaScriptEscapeType
.level
- the escape level to be applied, see JavaScriptEscapeLevel
.public static void escapeJavaScriptMinimal(char[] text, int offset, int len, Writer writer) throws IOException
Perform a JavaScript level 1 (only basic set) escape operation on a char[] input.
Level 1 means this method will only escape the JavaScript basic escape set:
This method calls
escapeJavaScript(char[], int, int, java.io.Writer, JavaScriptEscapeType, JavaScriptEscapeLevel)
with the following preconfigured values:
JavaScriptEscapeType.SINGLE_ESCAPE_CHARS_DEFAULT_TO_XHEXA_AND_UHEXA
JavaScriptEscapeLevel.LEVEL_1_BASIC_ESCAPE_SET
This method is thread-safe.
text
- the char[] to be escaped.offset
- the position in text at which the escape operation should start.len
- the number of characters in text that should be escaped.writer
- the java.io.Writer to which the escaped result will be written. Nothing will
be written at all to this writer if text is null.IOException
- if an input/output exception occurspublic static void escapeJavaScript(char[] text, int offset, int len, Writer writer) throws IOException
Perform a JavaScript level 2 (basic set and all non-ASCII chars) escape operation on a char[] input.
Level 2 means this method will escape:
This escape will be performed by using the Single Escape Chars whenever possible. For escaped characters that do not have an associated SEC, default to using \xFF Hexadecimal Escapes if possible (characters <= U+00FF), then default to \uFFFF Hexadecimal Escapes. This type of escape produces the smallest escaped string possible.
This method calls
escapeJavaScript(char[], int, int, java.io.Writer, JavaScriptEscapeType, JavaScriptEscapeLevel)
with the following preconfigured values:
JavaScriptEscapeType.SINGLE_ESCAPE_CHARS_DEFAULT_TO_XHEXA_AND_UHEXA
JavaScriptEscapeLevel.LEVEL_2_ALL_NON_ASCII_PLUS_BASIC_ESCAPE_SET
This method is thread-safe.
text
- the char[] to be escaped.offset
- the position in text at which the escape operation should start.len
- the number of characters in text that should be escaped.writer
- the java.io.Writer to which the escaped result will be written. Nothing will
be written at all to this writer if text is null.IOException
- if an input/output exception occurspublic static void escapeJavaScript(char[] text, int offset, int len, Writer writer, JavaScriptEscapeType type, JavaScriptEscapeLevel level) throws IOException
Perform a (configurable) JavaScript escape operation on a char[] input.
This method will perform an escape operation according to the specified
JavaScriptEscapeType
and
JavaScriptEscapeLevel
argument values.
All other char[]-based escapeJavaScript*(...) methods call this one with preconfigured type and level values.
This method is thread-safe.
text
- the char[] to be escaped.offset
- the position in text at which the escape operation should start.len
- the number of characters in text that should be escaped.writer
- the java.io.Writer to which the escaped result will be written. Nothing will
be written at all to this writer if text is null.type
- the type of escape operation to be performed, see
JavaScriptEscapeType
.level
- the escape level to be applied, see JavaScriptEscapeLevel
.IOException
- if an input/output exception occurspublic static String unescapeJavaScript(String text)
Perform a JavaScript unescape operation on a String input.
No additional configuration arguments are required. Unescape operations will always perform complete JavaScript unescape of SECs, x-based, u-based and octal escapes.
This method is thread-safe.
text
- the String to be unescaped.public static void unescapeJavaScript(char[] text, int offset, int len, Writer writer) throws IOException
Perform a JavaScript unescape operation on a char[] input.
No additional configuration arguments are required. Unescape operations will always perform complete JavaScript unescape of SECs, x-based, u-based and octal escapes.
This method is thread-safe.
text
- the char[] to be unescaped.offset
- the position in text at which the unescape operation should start.len
- the number of characters in text that should be unescaped.writer
- the java.io.Writer to which the unescaped result will be written. Nothing will
be written at all to this writer if text is null.IOException
- if an input/output exception occursCopyright © 2015 The UNBESCAPE team. All rights reserved.