有时候需要过滤掉HTML的img标签或者其他的标签,代码想了不少时间,特意做个记录,以备后用。
假如:text变量为已经获取到的HTML代码,首先将html代码通过img标签的特征拆分成数组,数组中有几个元素,说明html中有几个img标签
var strs = text.split("<img src");
然后再循环数组对每个元素进行截取
for(var i=0;i<strs.length;i++){
text = text.replace(text.substring(text.indexOf("<img src"),text.indexOf(">",text.indexOf("<img src"))+1),"")
}
截取时,有几个img标签就需要处理几次。
先通过text.indexOf("<img src")获取img标签开头的索引位置,再通过text.indexOf(">",text.indexOf("<img src"))+1)获取从img标签开头的索引位置开始定位img标签结尾的索引位置。
此处需要对indexOf(str)和indexOf(str,x)的使用非常清楚:
indexOf(str)默认从字符串的开始寻找第一个匹配的内容的索引位置
indexOf(str,x)从x的位置往后开始寻找第一个匹配的内容的索引位置
当循环处理时,首先把第一个img标签的内容找到头和尾的位置,然后根据位置截取,再进行替换为空,第一个img标签替换为空之后,第二次循环时,找到的将是第二个img标签,使用同样的方式处理。
同理,要过滤字符串其他的字符段,均可采用此方法