所以基本上,我有这个:
str.replace(/<p><\/p>|<p>\.<\/p>/g);
试图删除里面没有或少于 3 个字符的所有段落。正则表达式的第一部分可以正常工作,但是像这样的段落:<p>.</p>
不要被删除。对不起新手问题。
所以基本上,我有这个:
str.replace(/<p><\/p>|<p>\.<\/p>/g);
试图删除里面没有或少于 3 个字符的所有段落。正则表达式的第一部分可以正常工作,但是像这样的段落:<p>.</p>
不要被删除。对不起新手问题。
使用以下正则表达式。
<p>.{0,2}</p>
^ any character, 0 - 2 times (you said less than 3)
转义.
as\.
匹配文字.
。
这是一个演示:http: //jsfiddle.net/yQ5pu/1/
试试这个正则表达式。/<\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/
你不需要玩这些标签,浏览器为所有这些提供了一个 API,它运行得更快,更不容易出现错误/漏洞,以及烦人的“为什么我的浏览器死机?” 怪癖。
var pTags = document.getElementsByTagName("p");
就是这样。页面中的每个标签现在都是变量 pTags 内文档元素数组的一部分。
然后,您可以检查任何给定 pTags[i] 内部的内容,并通过以下方式将其删除:
pTags[i].parentNode.removeChild(pTags[i]);
当然,还有其他方法可以为此使用DOM API。
<p>[0-9A-Za-z]{0,2}</p>
段落 {0,2} 之间的任何字符或数字出现少于 3 次。