js過(guò)濾HTML標(biāo)簽以及空格的思路及代碼
function setContent(str) {
str = str.replace(/<\/?[^>]*>/g,''); //去除HTML tag
str.value = str.replace(/[ | ]*\n/g,'\n'); //去除行尾空白
//str = str.replace(/\n[\s| | ]*\r/g,'\n'); //去除多余空行
return str;
}
測(cè)試的時(shí)候發(fā)現(xiàn)這段代碼不能過(guò)濾掉網(wǎng)頁(yè)中空格字符(即: )。于是自己又改造了一下:
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(/ /ig,'');//去掉
return str;
}
恩,我的要求達(dá)到了。
現(xiàn)在來(lái)稍稍解釋一下所用到的三個(gè)正則表達(dá)吧(需要說(shuō)明的是,因?yàn)樽约阂彩莿倓偨佑|,也許我的解釋并不是正確的,僅供參考):
第一個(gè):/<\/?[^>]*>/g
在js中正則表達(dá)式是以“/”開(kāi)頭的,后面的/g,含義是表示全局模式,意思是在將匹配的模式應(yīng)用于整個(gè)字符串,而不是在第一次匹配上之后就停止匹配了。
<\/?[^>]*> 這個(gè)分開(kāi)來(lái)解釋?zhuān)渲械诙€(gè)字符“\”是一個(gè)轉(zhuǎn)移字符,用來(lái)轉(zhuǎn)移后面的”/”字符的。?匹配0或1個(gè)正好在它之前的那個(gè)字符。注意:這個(gè)元字符不是所有的軟件都支持的。所以<\/?就是匹配html標(biāo)簽中的”</”格式或者“<”格式的。
再來(lái)說(shuō)[^>]*>。[]是含義是:

^的含義是:匹配一行的開(kāi)始。例如正則表達(dá)式^When in能夠匹配字符串"When in the course of human events"的開(kāi)始,但是不能匹配"What and When in the"。意思就是匹配以“When in”開(kāi)頭的文字。
*的含義是:匹配0或多個(gè)正好在它之前的那個(gè)字符。例如正則表達(dá)式。*意味著能夠匹配任意數(shù)量的任何字符
因此[^>]*意思是匹配>之外的字符。所以[^>]可以匹配出的模式可以像下面這樣的:
div
我需要的文字</div
我需要的文字</p
*和前面的[^>]結(jié)合在一起就可以匹配下面這些字符了:
div>我需要的文字</div
p>我需要的文字</p
br /
再加上后面的>就可以匹配下面的字符了:
div>我需要的文字</div>
p>我需要的文字</p>
br />
這樣就完成了一對(duì)HTML標(biāo)簽的匹配了。(多句話,總覺(jué)得這個(gè)匹配有點(diǎn)啰嗦,但是不知道到底在哪個(gè)地方啰嗦)
第二個(gè):/[ | ]*\n/g:我也沒(méi)有看懂
第三個(gè):/ /ig:就是直接查找 字符,后面的/ig的含義是在全局模式下進(jìn)行不區(qū)分大小寫(xiě)的查找。g代表全局,i表示不區(qū)分大小寫(xiě)。
- AngularJS模糊查詢功能實(shí)現(xiàn)代碼(過(guò)濾內(nèi)容下拉菜單排序過(guò)濾敏感字符驗(yàn)證判斷后添加表格信息)
- js中過(guò)濾特殊字符的正則表達(dá)式
- Javascript 5種方法實(shí)現(xiàn)過(guò)濾刪除前后所有空格
- js特殊字符過(guò)濾的示例代碼
- 用js實(shí)現(xiàn)過(guò)濾script的正則
- JS敏感詞過(guò)濾代碼
- js過(guò)濾HTML標(biāo)簽完整實(shí)例
- 利用javascript/jquery對(duì)上傳文件格式過(guò)濾的方法
- 用于過(guò)濾空白字符的幾種常見(jiàn)的js正則表達(dá)式pattern
- js限制input只能輸入有效的數(shù)字(第一個(gè)不能是小數(shù)點(diǎn))
- 原生JS 實(shí)現(xiàn)的input輸入時(shí)表格過(guò)濾操作示例
相關(guān)文章
jQuery實(shí)現(xiàn)手機(jī)版頁(yè)面翻頁(yè)效果的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇jQuery實(shí)現(xiàn)手機(jī)版頁(yè)面翻頁(yè)效果的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10
jQuery實(shí)現(xiàn)下拉框選擇圖片功能實(shí)例
這篇文章主要介紹了jQuery實(shí)現(xiàn)下拉框選擇圖片功能,可實(shí)現(xiàn)帶圖片的下拉列表功能,涉及jquery插件imageselect.js的使用,需要的朋友可以參考下2015-08-08
關(guān)于jQuery新的事件綁定機(jī)制on()的使用技巧
本篇文章介紹了,關(guān)于jQuery新的事件綁定機(jī)制on()的使用技巧。需要的朋友參考下2013-04-04
jQuery+ajax實(shí)現(xiàn)無(wú)刷新級(jí)聯(lián)菜單示例
這篇文章主要介紹了jQuery+ajax實(shí)現(xiàn)無(wú)刷新級(jí)聯(lián)菜單示例,代碼很完整,也非常實(shí)用,有需要的小伙伴可以參考下。2015-05-05
一個(gè)可綁定數(shù)據(jù)源的jQuery數(shù)據(jù)表格插件
此文將實(shí)現(xiàn)一個(gè)的jQuery表格插件jQuery.DataGrid。需要的朋友可以參考下。2010-07-07
jquery在項(xiàng)目中做復(fù)選框時(shí)遇到的一些問(wèn)題筆記
在實(shí)踐中還是遇到了很多的問(wèn)題,注意在input的checkbox中,用普通的attr屬性來(lái)判斷是不可以的,因?yàn)閏hecked的值是checked,因此做個(gè)筆記2013-11-11
Jquery綁定事件(bind和live的區(qū)別介紹)
Jquery中綁定事件有三種方法click、bind、live第一種方法很好理解,其實(shí)就和普通JS的用法差不多,只是少了一個(gè)on而已第二、三種方法都是綁定事件2013-08-08
JQuery實(shí)現(xiàn)當(dāng)鼠標(biāo)停留在某區(qū)域3秒后自動(dòng)執(zhí)行
這篇文章主要介紹了JQuery實(shí)現(xiàn)當(dāng)鼠標(biāo)停留在某區(qū)域3秒后自動(dòng)執(zhí)行,可以應(yīng)用于很多場(chǎng)景,需要的朋友可以參考下2014-09-09
jQuery倒計(jì)時(shí)代碼(超簡(jiǎn)單)
本文給大家分享一段超簡(jiǎn)單的代碼基于jquery實(shí)現(xiàn)倒計(jì)時(shí)功能,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下2017-02-02

