是否有预定义的方法可以判断字符串中是否包含HTML标签或字符?
你可以尝试使用正则表达式,例如这样
private static final String HTML_PATTERN = "<(\"[^\"]*\"|'[^']*'|[^'\">])*>";
private Pattern pattern = Pattern.compile(HTML_PATTERN);
public boolean hasHTMLTags(String text){
Matcher matcher = pattern.matcher(text);
return matcher.find();
}
可以使用正则表达式来搜索或识别字符串中的HTML标签。
boolean containsHTMLTag = stringHtml.matches(".*\\<[^>]+>.*");
String textOfHtmlString = Jsoup.parse(htmlString).text();
boolean containedHTMLTag = !textOfHtmlString.equals(htmlString);
".*\\<[^>]+\\>.*"
;其次,似乎一个XML文档也适用于这个正则表达式。 - Sharon Ben Asherprivate static final String HTML_TAG_PATTERN = "<(\"[^\"]*\"|'[^']*'|[^'\">])*>";
static Pattern htmlValidator = TextUtils.isEmpty(HTML_TAG_PATTERN) ? null:Pattern.compile(HTML_TAG_PATTERN);
public static boolean validateHtml(final String text){
if(htmlValidator !=null)
return htmlValidator.matcher(text).find();
return false;
}
使用正则表达式解析字符串以搜索HTML(在我的情况下,以防止与XSS攻击相关的输入)不是正确的方法。
一个好的方法是使用Spring HtmlUtils
这两种方法已经在这里更好地解释了,
JSoup
的工具,看看长度是否会改变。如果长度没有改变,则说明该字符串不包含 HTML。 - Tim Biegeleisen<br/>Test Plan: YTL Test Plan for Release 1<br/><br/>Test Case: Clarity TC - Provisioning 1<br/>
我需要将包含 HTML 的字符串解析为普通字符串。 - Neha S