前端开发:js过滤HTML标签以及&nbsp网页中空格字符

今天,咱们聊聊前端开发中怎么用js过滤HTML标签以及&nbsp网页中空格字符,说到过滤标签字符串,就要说到正则表达式。正则表达式的规则在这里就不一一介绍了。下面这个方法就达到了过滤html标签以及网页中空格字符的作用。

function removeHTMLTag(str) {
            str = str.replace(/<\/?[^>]*>/g,''); //去除HTML tag
            str = str.replace(/[ | ]*\n/g,'\n'); //去除行尾空白
            //str = str.replace(/\n[\s| | ]*\r/g,'\n'); //去除多余空行
            str=str.replace(/&nbsp;/ig,'');//去掉&nbsp;
            return str;
    }

 

现在来稍稍解释一下所用到的三个正则表达吧,也许我的解释并不是正确的,仅供参考:

第一个:/<\/?[^>]*>/g

在js中正则表达式是以“/”开头的,后面的/g,含义是表示全局模式,意思是在将匹配的模式应用于整个字符串,而不是在第一次匹配上之后就停止匹配了。

 

<\/?[^>]*> 这个分开来解释,其中第二个字符“\”是一个转移字符,用来转移后面的”/”字符的。?匹配0或1个正好在它之前的那个字符。注意:这个元字符不是所有的软件都支持的。所以<\/?就是匹配html标签中的”</”格式或者“<”格式的。

 

再来说[^>]*>。[]是含义是:

 

^的含义是:匹配一行的开始。例如正则表达式^When in能够匹配字符串”When in the course of human events”的开始,但是不能匹配”What and When in the”。意思就是匹配以“When in”开头的文字。

*的含义是:匹配0或多个正好在它之前的那个字符。例如正则表达式。*意味着能够匹配任意数量的任何字符

 

因此[^>]*意思是匹配>之外的字符。所以[^>]可以匹配出的模式可以像下面这样的:

  1. div
  2. 我需要的文字</div
  3. p
  4. 我需要的文字</p

 

*和前面的[^>]结合在一起就可以匹配下面这些字符了:

  1. div>我需要的文字</div
  2. p>我需要的文字</p
  3. br /

再加上后面的>就可以匹配下面的字符了:

  1. div>我需要的文字</div>
  2. p>我需要的文字</p>
  3. br />

这样就完成了一对HTML标签的匹配了。(多句话,总觉得这个匹配有点啰嗦,但是不知道到底在哪个地方啰嗦)

 

第二个:/[ | ]*\n/g:我也没有看懂

第三个:/&nbsp;/ig:就是直接查找&nbsp;字符,后面的/ig的含义是在全局模式下进行不区分大小写的查找。g代表全局,i表示不区分大小写。

欢迎转载一起玩耍http://17wanshua.cn/的文章:一起玩耍17wanshua.cn » 前端开发:js过滤HTML标签以及&nbsp网页中空格字符

赞 (0)
分享到: 更多

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址