这个正则表达式
var reg = <font[^>]*>(?:\s*<(\w+)>\s*<\/\1>\s*|\s*)<\/font>
用于替换(reg,&#39;&#39;)以删除空字体标记。它删除了这个
<font size="3"></font>
行。
如何修改它以便删除
<font size="3"> </font>
或
<font size="3"> </font>
或
<font size="3"> </font>
我希望能够找到标签之间有任意数量空格的所有空字体标签,并替换为空字符串。
答案 0 :(得分:0)
试试这个
<font[^>]*>(?:\s*<(\w+)>\s*<\/\1>\s*|\s*|( )+)<\/font>
根据你的正则表达式。它已经占据了空间。我刚刚添加了
regex101链接:https://regex101.com/r/4Msyv1/2
答案 1 :(得分:0)
如果您要做的只是找到标签之间有任意数量空格的所有空字体标签,并用空字符串替换,您可以稍微简化正则表达式。如果您已经使用当前的正则表达式进行了指示,那么您还需要在其中捕获一层空标记,您可以执行以下操作:
var reg = /<font[^>]*>(?:\s| |<(\w+)>(?:\s| )*<\/\1>)*<\/font>/gi
var testStr = `<font size="3"></font>
<font size="3"> </font>
<font size="3"> </font>
<font size="3"> </font>
<font size="3"> </font>
<font size="3"><something> </something></font>`
console.log(testStr.replace(reg, ""))