所以基本上,我有這樣的:如何正則表達式替換段落中少於3個字符的段落?
str.replace(/<p><\/p>|<p>\.<\/p>/g);
試圖刪除一無所有或少於3個字符內的所有段落。正則表達式的第一部分正常工作,但是像這樣的段落:<p>.</p>
不會被刪除。對不起,新手問題。
所以基本上,我有這樣的:如何正則表達式替換段落中少於3個字符的段落?
str.replace(/<p><\/p>|<p>\.<\/p>/g);
試圖刪除一無所有或少於3個字符內的所有段落。正則表達式的第一部分正常工作,但是像這樣的段落:<p>.</p>
不會被刪除。對不起,新手問題。
試試這個正則表達式。 /<\s*(p|P)[^>]*>([^<.]{0,3}|\..{1,2}|.{1,2}\.)<\s*\/(p|P)\s*>/g
這將匹配<p>
標記,不區分大小寫,段落可以具有不同的屬性。
例子:
var str = "<p>test</p><p>t</p><P>tes</P><p class=\"someclass\">s</p><p>some long text</p>";
str.replace(/<\s*(p|P)[^>]*>([^<.]{0,3}|\..{1,2}|.{1,2}\.)<\s*\/(p|P)\s*>/g, '');
而且一個的jsfiddle例如:http://jsfiddle.net/Tkwk5/3/
[^>]匹配除「<」之外的所有內容。它在那裏匹配與結束標記不同的全部內容。因此[^ <] {0,3}將匹配所有長度從0到3的不包含'>'的所有內容。 –
啊......只是看到了問題的其餘部分......我會在一秒鐘內修復正則表達式。對不起 –
它是固定的。我再次對自己不注意的事情感到抱歉。 –
使用以下正則表達式。
<p>.{0,2}</p>
^any character, 0 - 2 times (you said less than 3)
擺脫.
作爲\.
匹配文字.
。
下面是一個示範:http://jsfiddle.net/yQ5pu/1/
我想知道空白是否應該算作一個字符 –
<p>[0-9A-Za-z]{0,2}</p>
段落{0,2}不足3個OCCURENCES之間的任何字符或數字。
「character」!=「letter」。空間是一個角色。 –
你不需要與標籤玩,瀏覽器提供了一個API所有這一切,運行更快,更容易錯誤/漏洞,以及煩人的「爲什麼我的瀏覽器被凍結?」怪癖。
var pTags = document.getElementsByTagName("p");
就是這樣。頁面中的每個標籤現在都是變量pTags內的文檔元素數組的一部分。
然後,您可以檢查什麼的任何給定的屬性標記[I]內,並通過將其刪除:
pTags[i].parentNode.removeChild(pTags[i]);
當然還有其他的方式來使用the DOM API這一點。
'\ .'只匹配文字點字符。那是你想要測試的嗎? –