有時候需要過濾掉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標籤,使用同樣的方式處理。
同理,要過濾字符串其他的字符段,均可採用此方法