PHP-求php和js实现的高效去除文本中html tag的方法

服务器管理 服务器管理 主题:1035 回复:2217

PHP-求php和js实现的高效去除文本中html tag的方法

瑾兮 发布于 2017-05-07 字数 267 浏览 1040 回复 1

由于前端和后台同时需要对一段html文字进行tag过滤,因此希望使用php和javascript分别实现。
要求效率高一些,另外可以通过参数设置忽略某些tag。
比如可以这样调用:
delete_html_tag("这是一段文本", "script", "a");

"script", "a"为要忽略的html tag。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(1

虐人心 2017-06-05 1 楼

php 函数可以直接实现:

string strip_tags ( string $str [, string $allowable_tags ] )

该函数尝试返回给定的字符串 str 去除空字符、HTML 和 PHP 标记后的结果。它使用与函数 fgetss() 一样的标记去除状态机。

js实现如下:

function strip_tags (input, allowed) {
allowed = (((allowed || "") + "").toLowerCase().match(/<[a-z][a-z0-9]>/g) || []).join(''); // making sure the allowed arg is a string containing only tags in lowercase (<a><b><c>)
var tags = /</?([a-z][a-z0-9]
)b[^>]>/gi,
commentsAndPhpTags = /<!--[sS]
?-->|<?(?:php)?[sS]*??>/gi;
return input.replace(commentsAndPhpTags, '').replace(tags, function ($0, $1) {
return allowed.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 : '';
});
}

详细请看: php.js