移除字符串中的HTML标签代码(js与JAVA版)

JS版本:

    // 移除脚本标签
	function escapeScript(str) {
		if (!str) return "";
		return str.replace(/<script([\s]+[^\s>]+?)*[\s]*>[\s\S]*?<\/script>/gm, "");
	}

    // 移除jsi脚本标签
	function escapeHtml(str) {
		if (!str) return "";
		// 移除脚本标签
		str = str.replace(/<script([\s]+[^\s>]+?)*[\s]*>[\s\S]*?<\/script>/gm, "");
		// 移除注释标签
		str = str.replace(/\<!--[\s\S]*?--\>/gm, "");
		// 需要移除整个标签(包含内部内容)的
		str = str.replace(/(<head([\s]+[^\s>]+?)*[\s]*>[\s\S]*?<\/head>)|(<title([\s]+[^\s>]+?)*[\s]*>[\s\S]*?<\/title>)|(<script([\s]+[^\s>]+?)*[\s]*>[\s\S]*?<\/script>)|(<video([\s]+[^\s>]+?)*[\s]*>[\s\S]*?<\/video>)|(<audio([\s]+[^\s>]+?)*[\s]*>[\s\S]*?<\/audio>)|(<style([\s]+[^\s>]+?)*[\s]*>[\s\S]*?<\/style>)|(<colgroup([\s]+[^\s>]+?)*[\s]*>[\s\S]*?<\/colgroup>)|(<select([\s]+[^\s>]+?)*[\s]*>[\s\S]*?<\/select>)|(<img([\s]+[^\s>]+?)*[\s]*>[\s\S]*?<\/img>)|(<option([\s]+[^\s>]+?)*[\s]*>[\s\S]*?<\/option>)|(<optgroup([\s]+[^\s>]+?)*[\s]*>[\s\S]*?<\/optgroup>)|(<link([\s]+[^\s>]+?)*[\s]*>[\s\S]*?<\/link>)|(<meta([\s]+[^\s>]+?)*[\s]*>[\s\S]*?<\/meta>)/gm, "");
		// 需要替换成换行符的
		str = str.replace(/(<div([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<p([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<br([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<iframe([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<html([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<table([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<thead([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<tr([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<hr([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<h1([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<h2([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<h3([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<h4([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<h5([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<li([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<tbody([\s]+[^\s>]+?)*[\s]*[\/]?>)/gm, "\n");
		// 需要替换成空格的
		str = str.replace(/(<a([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/a>)|(<td([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/td>)|(<th([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/th>)|(<blockquote([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/blockquote>)|(<form([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/form>)|(<nav([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/nav>)|(<code([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/code>)|(<body([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/body>)/gm, " ");
		// 仅有头标签或尾标签移除的
		str = str.replace(/(<strike([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/strike>)|(<span([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/span>)|(<label([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/label>)|(<ul([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/ul>)|(<ol([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/ol>)|(<u([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/u>)|(<col([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/col>)|(<b([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/b>)|(<input([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/input>)|(<button([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/button>)|(<i([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/i>)|(<head([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/head>)|(<title([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/title>)|(<script([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/script>)|(<video([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/video>)|(<audio([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/audio>)|(<style([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/style>)|(<colgroup([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/colgroup>)|(<select([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/select>)|(<img([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/img>)|(<option([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/option>)|(<optgroup([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/optgroup>)|(<link([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/link>)|(<meta([\s]+[^\s>]+?)*[\s]*[\/]?>)|(<\/meta>)|(<\/div>)|(<\/p>)|(<\/br>)|(<\/iframe>)|(<\/html>)|(<\/table>)|(<\/thead>)|(<\/tr>)|(<\/hr>)|(<\/h1>)|(<\/h2>)|(<\/h3>)|(<\/h4>)|(<\/h5>)|(<\/li>)|(<\/tbody>)/gm, "");
		// 两个换行之间的多个空白字符,包含(头尾两换行)替换成单个换行
		str = str.replace(/[\n][\s]*[\n]/gm, "\n");
		// 多个空格和制表符,替换成两个空格
		str = str.replace(/[ \t]{3,}/gm, "  ");
		return str;
	}

调用escapeScript将删除字符串中的js脚本,调用escapeHtml将删除字符串中的HTML标签

JAVA版本,可参考:

https://github.com/Uetty/common-parent -> EscapeHtmlUtil.java

猜你喜欢

转载自blog.csdn.net/Vincent_Field/article/details/84988908