在js中,可以通过 replace() 方法,将一串含有html标签的字符串中的html标签过滤掉,本文就来详细的介绍一下,js中过滤html标签的方法。

js replace() 方法定义与介绍

replace():在字符串中用正则表达式或字符替换另一些字符。

语法:

Object.replace(regexp/substr,replacement)

regexp/substr:字符串或正则表达式

replacement:规定要替换的字符串或函数

js过滤掉不带属性的指定html标签

示例1:

<script>
    var str = "<p><span>飞鸟慕鱼博客</span><span>feiniaomy.com</span></p>";
    nohtmlstr = str.replace(/<span>|<\/span>/gi, "");
    console.log(nohtmlstr);
</script>

打印结果:

<p>飞鸟慕鱼博客feiniaomy.com</p>

示例2:

<script>
    var str = "<p><span style='color:#ccc;'>这是测试标签</span><span>这是测试html内容</span></p>";
    str = str.replace(/<span>/gi, "");
    str = str.replace(/<\/span>/gi, "");
    console.log(str);
</script>

打印结果:

<p><span style='color:#ccc;'>这是测试标签这是测试html内容</p>

注意:带有属性的html标签,没有被过滤掉!

js过滤掉带属性的指定html标签

示例1:

js代码:

<script>
    var str = "<p><span style='color:#ccc;'>这是测试标签</span><span>这是测试html内容</span></p>";
    nohtml = str.replace(/<span.*?>|<\/span>/ig, "");
    console.log(nohtml);
</script>

打印结果:

<p>这是测试标签这是测试html内容</p>

示例2:

<script>
    var str = "<p><span style='color:#ccc;'>这是测试标签</span><span>这是测试html内容</span></p>";
    nohtml = str.replace(/<span\s*[^>]*>(.*?)<\/span>/ig, "$1");
    console.log(nohtml);
</script>

打印结果:

<p>这是测试标签这是测试html内容</p>

js过滤掉所有的html标签

js代码:

<script>
    var str = "<p><font color=#000000>飞鸟慕鱼博客</font></p><div>mochu</div>";
    var nohtml = str.replace(/<\/?.+?>/g, "");
    console.log(nohtml);
</script>

打印结果:

飞鸟慕鱼博客mochu