js過濾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)這段代碼不能過濾掉網(wǎng)頁中空格字符(即: )。于是自己又改造了一下:
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)在來稍稍解釋一下所用到的三個(gè)正則表達(dá)吧(需要說明的是,因?yàn)樽约阂彩莿倓偨佑|,也許我的解釋并不是正確的,僅供參考):
第一個(gè):/<\/?[^>]*>/g
在js中正則表達(dá)式是以“/”開頭的,后面的/g,含義是表示全局模式,意思是在將匹配的模式應(yīng)用于整個(gè)字符串,而不是在第一次匹配上之后就停止匹配了。
<\/?[^>]*> 這個(gè)分開來解釋,其中第二個(gè)字符“\”是一個(gè)轉(zhuǎn)移字符,用來轉(zhuǎn)移后面的”/”字符的。?匹配0或1個(gè)正好在它之前的那個(gè)字符。注意:這個(gè)元字符不是所有的軟件都支持的。所以<\/?就是匹配html標(biāo)簽中的”</”格式或者“<”格式的。
再來說[^>]*>。[]是含義是:
^的含義是:匹配一行的開始。例如正則表達(dá)式^When in能夠匹配字符串"When in the course of human events"的開始,但是不能匹配"What and When in the"。意思就是匹配以“When in”開頭的文字。
*的含義是:匹配0或多個(gè)正好在它之前的那個(gè)字符。例如正則表達(dá)式。*意味著能夠匹配任意數(shù)量的任何字符
因此[^>]*意思是匹配>之外的字符。所以[^>]可以匹配出的模式可以像下面這樣的:
div
我需要的文字</div
我需要的文字</p
*和前面的[^>]結(jié)合在一起就可以匹配下面這些字符了:
div>我需要的文字</div
p>我需要的文字</p
br /
再加上后面的>就可以匹配下面的字符了:
div>我需要的文字</div>
p>我需要的文字</p>
br />
這樣就完成了一對(duì)HTML標(biāo)簽的匹配了。(多句話,總覺得這個(gè)匹配有點(diǎn)啰嗦,但是不知道到底在哪個(gè)地方啰嗦)
第二個(gè):/[ | ]*\n/g:我也沒有看懂
第三個(gè):/ /ig:就是直接查找 字符,后面的/ig的含義是在全局模式下進(jìn)行不區(qū)分大小寫的查找。g代表全局,i表示不區(qū)分大小寫。
- AngularJS模糊查詢功能實(shí)現(xiàn)代碼(過濾內(nèi)容下拉菜單排序過濾敏感字符驗(yàn)證判斷后添加表格信息)
- js中過濾特殊字符的正則表達(dá)式
- Javascript 5種方法實(shí)現(xiàn)過濾刪除前后所有空格
- js特殊字符過濾的示例代碼
- 用js實(shí)現(xiàn)過濾script的正則
- JS敏感詞過濾代碼
- js過濾HTML標(biāo)簽完整實(shí)例
- 利用javascript/jquery對(duì)上傳文件格式過濾的方法
- 用于過濾空白字符的幾種常見的js正則表達(dá)式pattern
- js限制input只能輸入有效的數(shù)字(第一個(gè)不能是小數(shù)點(diǎn))
- 原生JS 實(shí)現(xiàn)的input輸入時(shí)表格過濾操作示例
相關(guān)文章
jQuery給div,Span, a ,button, radio 賦值與取值
這篇文章主要介紹了jQuery給div,Span, a ,button, radio 賦值與取值的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06jquery使用each方法遍歷json格式數(shù)據(jù)實(shí)例
這篇文章主要介紹了jquery使用each方法遍歷json格式數(shù)據(jù),實(shí)例分析了jQuery中each方法的使用技巧,需要的朋友可以參考下2015-05-05jQuery validata插件實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄猨Query validata插件實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06一個(gè)背景云變換js特效 鼠標(biāo)移動(dòng)背景云變化
分享一個(gè)背景云變換js特效隨著鼠標(biāo)的移動(dòng),背景云會(huì)不斷的變化位置和形狀,感興趣的朋友可以研究下2012-12-12jQuery Ajax File Upload實(shí)例源碼
這篇文章主要為大家分享了jQuery Ajax File Upload實(shí)例源碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12jQuery插入節(jié)點(diǎn)和移動(dòng)節(jié)點(diǎn)用法示例(insertAfter、insertBefore方法)
這篇文章主要介紹了jQuery插入節(jié)點(diǎn)和移動(dòng)節(jié)點(diǎn)的方法,結(jié)合實(shí)例形式分析了insertAfter和insertBefore方法針對(duì)頁面元素節(jié)點(diǎn)操作的使用技巧,需要的朋友可以參考下2016-09-09jquery dataTable 后臺(tái)加載數(shù)據(jù)并分頁實(shí)例代碼
本篇文章主要介紹了jquery dataTable 后臺(tái)加載數(shù)據(jù)并分頁實(shí)例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下2017-06-06jquery、js調(diào)用iframe父窗口與子窗口元素的方法整理
本節(jié)主要介紹了jquery、js調(diào)用iframe父窗口與子窗口元素的方法,需要的朋友可以參考下2014-07-07