Package net.sf.basedb.clients.web.util
Class HTML
java.lang.Object
net.sf.basedb.clients.web.util.HTML
This class contains a set of static methods that may be useful
in a web application for handling text/HTML strings.
- Version:
- 2.0
- Author:
- Nicklas
-
Field Summary
Modifier and TypeFieldDescriptionprivate static final Pattern
private static final Pattern
private static final Pattern
private static final Pattern
private static final Pattern
static final Pattern
This pattern can be used to find email addresses.private static final Pattern
private static final Pattern
private static final Pattern
private static final Pattern
static final Pattern
This pattern can be used to find line breaks.static final int
This flag is used inscanForLinks(String,int)
when you want to create links for email addresses.static final int
This flag is used inscanForLinks(String,int)
when you want to create links for URL:s.private static final Pattern
static final Pattern
Pattern that matches everything inside a HTML tag.private static final Pattern
private static final Pattern
private static final Pattern
private static final Pattern
static final Pattern
This pattern is a list of HTML tags considered "safe".private static final Pattern
static final int
This flag is used inscanForLinks(String,int)
when you want to create links for images with a <img> tag instead of an <a> tag.private static final Pattern
static final Pattern
This pattern can be used to fins HTML tags.static final Pattern
This pattern can be used to find URL:s. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic String
encodeTags
(String in) Scans a string for HTML tags and replaces all & with &, < with <, > with > and all " with "static String
encodeTags
(String in, String safeTags) Scans a string for HTML tags and replaces all < and > for tags not found in thesafeTags
pattern with < and > respectively.static String
encodeTags
(String in, Pattern safeTags) Scans a string for HTML tags and replaces all < and > for tags not found matching thesafeTags
pattern with < and > respectively.static String
Finds all linebreaks in a string and replaces them with a <br> tag, except that leading and trailing linebreaks will be removed.static boolean
isValidEmail
(String email) Checks if the given string looks like an email address.static boolean
isValidUrl
(String url) Checks if the given string looks like an URL.static String
Escape a string to make it safe for use in a JavaScript statement.static String
niceFormat
(String in) A convenience method for doingencodeTags(in, SAFE_TAGS)
,scanForLinks(in, "_blank")
andformatLineBreaks(in)
in a single operation.static String
niceFormat
(String in, int flags) A convenience method for doingencodeTags(in, SAFE_TAGS)
,scanForLinks(in, flags, "_blank")
andformatLineBreaks(in)
in a single operation.static String
niceFormat
(String in, int flags, String linkTarget) A convenience method for doingencodeTags(in, SAFE_TAGS)
,scanForLinks(in, flags, link_target)
andformatLineBreaks(in)
in a single operation.static String
niceFormat
(String in, String linkTarget) A convenience method for doingencodeTags(in, SAFE_TAGS)
,scanForLinks(in, target)
andformatLineBreaks(in)
in a single operation.static String
scanForLinks
(String in) Scans a string for email addresses and URL:s and replaces them with<a href="---">
tags.static String
scanForLinks
(String in, int flags) Scans a string for email addresses and URL:s and replaces them with<a href="---">
tags.static String
scanForLinks
(String in, int flags, String target) Scans a string for email addresses and URL:s and replaces them with<a href="---">
tags.static String
scanForLinks
(String in, String target) Scans a string for email addresses and URL:s and replaces them with<a href="---">
tags.static String
Remove all HTML markup in a string and return what is left.static int
textLength
(CharSequence html) Counts the length of a string ignoring all characters in HTML markup tags.static String
Encode URL-unsafe characters in a string.
-
Field Details
-
LINK_URL
public static final int LINK_URLThis flag is used inscanForLinks(String,int)
when you want to create links for URL:s.- See Also:
-
LINK_EMAIL
public static final int LINK_EMAILThis flag is used inscanForLinks(String,int)
when you want to create links for email addresses.- See Also:
-
SMART_IMAGES
public static final int SMART_IMAGESThis flag is used inscanForLinks(String,int)
when you want to create links for images with a <img> tag instead of an <a> tag.- See Also:
-
EMAIL_REGEXP
This pattern can be used to find email addresses. The pattern will check that an @ symbol is present and that it is preceded with at least one character and followed by at least one subdomain and one topdomain. The pattern will allow any unicode letters, digits, underscore and hyphen in the address. It will not check that the domain or email address actually exists. -
URL_REGEXP
This pattern can be used to find URL:s. It will look for sequences starting withhttp://
,https://
,ftp://
orwww.
followed by at least one subdomain and one topdomain followed by an optional port number and an optional path including query information. -
LINEBREAKS_REGEXP
This pattern can be used to find line breaks. It will match any combination of carrige return and linefeed characters as well as some unicode line separator characters. -
TAG_REGEXP
This pattern can be used to fins HTML tags. It will match both start and end tags. The entire tag with attributes are put in the $1 group, the tag name in the $2 group and the attributes in $3. -
SAFE_TAGS
This pattern is a list of HTML tags considered "safe". -
MARKUP
Pattern that matches everything inside a HTML tag.- Since:
- 2.10
-
LEADING_TRAILING_LINEBREAKS
-
AT_OR_DOT
-
IMAGE_EXTENSION
-
AMP
-
LT
-
GT
-
QUOTE
-
PERCENT
-
PLUS
-
SPACE
-
HASH
-
AMPERSAND
-
BACKSLASH
-
NEWLINE
-
SINGLE_QUOTE
-
DOUBLE_QUOTE
-
-
Constructor Details
-
HTML
public HTML()
-
-
Method Details
-
isValidEmail
Checks if the given string looks like an email address. This is done by trying to match it against theEMAIL_REGEXP
pattern.- Parameters:
email
- The string to check- Returns:
- TRUE or FALSE
- See Also:
-
isValidUrl
Checks if the given string looks like an URL. This is done by trying to match it against theURL_REGEXP
pattern.- Parameters:
url
- The string to check- Returns:
- TRUE or FALSE
- See Also:
-
formatLineBreaks
Finds all linebreaks in a string and replaces them with a <br> tag, except that leading and trailing linebreaks will be removed.- Parameters:
in
- The string to search- Returns:
- The new string, or an empty string if NULL was passed
-
scanForLinks
Scans a string for email addresses and URL:s and replaces them with<a href="---">
tags. Using this method is equivalent to:scanForLinks(in, LINK_URL+LINK_EMAIL+SMART_IMAGES, null);
- Parameters:
in
- The string to search- Returns:
- The new string, or an empty string if NULL was passed
-
scanForLinks
Scans a string for email addresses and URL:s and replaces them with<a href="---">
tags. Using this method is equivalent to:scanForLinks(in, flags, null);
- Parameters:
in
- The string to searchflags
- A combination of the following flags to indicate what we should search for:LINK_URL
,LINK_EMAIL
SMART_IMAGES
- Returns:
- The new string, or an empty string if NULL was passed
-
scanForLinks
Scans a string for email addresses and URL:s and replaces them with<a href="---">
tags. Using this method is equivalent to:scanForLinks(in, LINK_URL+LINK_EMAIL+SMART_IMAGES, target);
- Parameters:
in
- The string to searchtarget
- The name of the target window in which the link should be opened- Returns:
- The new string, or an empty string if NULL was passed
-
scanForLinks
Scans a string for email addresses and URL:s and replaces them with<a href="---">
tags.- Parameters:
in
- The string to searchflags
- A combination of the following flags to indicate what we should search for:LINK_URL
,LINK_EMAIL
SMART_IMAGES
target
- The name of the target window in which the link should be opened- Returns:
- The new string, or an empty string if NULL was passed
-
encodeTags
Scans a string for HTML tags and replaces all & with &, < with <, > with > and all " with "- Parameters:
in
- The string to search- Returns:
- The new string, or an empty string if NULL was passed
-
encodeTags
Scans a string for HTML tags and replaces all < and > for tags not found in thesafeTags
pattern with < and > respectively. Tags that are found in thesafeTags
pattern are not modified. Using this method is equivalent toencodeTags(in, Pattern.compile(safeTags));
- Parameters:
in
- The string to searchsafeTags
- A regular expression that should match all safe tags- Returns:
- The new string, or an empty string if NULL was passed
- See Also:
-
encodeTags
Scans a string for HTML tags and replaces all < and > for tags not found matching thesafeTags
pattern with < and > respectively. Tags that matches thesafeTags
pattern are not modified.- Parameters:
in
- The string to searchsafeTags
- A regular expression pattern that matches all safe tags- Returns:
- The new string, or an empty string if NULL was passed
- See Also:
-
urlEncode
Encode URL-unsafe characters in a string. SeeURLEncoder
for more information.- Parameters:
in
- The string to encode- Returns:
- The encoded string, or an empty string if NULL was passed
-
javaScriptEncode
Escape a string to make it safe for use in a JavaScript statement. Replaces \ with \\, newline with \n, ' with \' and " with \".- Parameters:
in
- String to escape.- Returns:
- a String object, ready to be used in javaScripts.
-
niceFormat
A convenience method for doingencodeTags(in, SAFE_TAGS)
,scanForLinks(in, "_blank")
andformatLineBreaks(in)
in a single operation.- Parameters:
in
- The string to format- Returns:
- The result after calling the three methods mentioned above, in that order, or an empty string if NULL was passed
-
niceFormat
A convenience method for doingencodeTags(in, SAFE_TAGS)
,scanForLinks(in, flags, "_blank")
andformatLineBreaks(in)
in a single operation.- Parameters:
in
- The string to formatflags
- Flags to be used in the call toscanForLinks
- Returns:
- The result after calling the three methods mentioned above, in that order, or an empty string if NULL was passed
-
niceFormat
A convenience method for doingencodeTags(in, SAFE_TAGS)
,scanForLinks(in, target)
andformatLineBreaks(in)
in a single operation.- Parameters:
in
- The string to formatlinkTarget
- The target parameter to be used in the call toscanForLinks(String,String)
- Returns:
- The result after calling the three methods mentioned above, in that order, or an empty string if NULL was passed
-
niceFormat
A convenience method for doingencodeTags(in, SAFE_TAGS)
,scanForLinks(in, flags, link_target)
andformatLineBreaks(in)
in a single operation.- Parameters:
in
- The string to formatflags
- Flags to be used in the call toscanForLinks
linkTarget
- The target parameter to be used in the call toscanForLinks(String,int,String)
- Returns:
- The result after calling the three methods mentioned above, in that order, or an empty string if NULL was passed
-
stripMarkup
Remove all HTML markup in a string and return what is left.- Parameters:
in
- The string to strip from HTML- Returns:
- The resulting string, or null if the input is null
- Since:
- 2.10
-
textLength
Counts the length of a string ignoring all characters in HTML markup tags. The result is the approximately the length of the string that is displayed on screen by a browser. This method counts all characters that are not inside < and >. The actual number of characters displayed by a browser may be less because of escaped sequences, eg. & and white-space that is collapsed.- Parameters:
html
- The HTML string- Returns:
- The number of characters that are not HTML markup
- Since:
- 2.10
-