要求:
- 使用jQuery和正则将HTML中(含不同程度嵌套标签)的文本内含有的数字批量替换为其他字符,如*号
- 不能替换标签中的数字
- 不能替换内联样式里的数字
- HTML代码为接口获取,所以不存在给含数字的标签添加相同类进行替换的可能
实现效果示例:
<div>
...
<div>
...
<span style="font-size=20px;">文本文本文本:1232</span>
...
</div>
<h1 style="font-size=18px;">文本文本文本:1232</h1>
...
</div>
替换为
<div>
...
<div>
...
<span style="font-size=18px;">文本文本文本:****</span>
...
</div>
<h1 style="font-size=18px;">文本文本文本:****</h1>
...
</div>
替换基本只有那一种方式,获取节点文本,用字符串方法处理,重设回原节点。假设通过
getTextNodesIn
方法得到要替换的文本节点数组,则类似:查找上述文本节点则至少有两种方式,一如自己写个递归,筛选出文本节点:
二如用
NodeIterator
或TreeWalker
直接遍历范围内的文本节点(NodeFilter.SHOW_TEXT
):