如何移除div中的所有空白字符,但保留 实体?
移除空白但保留 实体的解决方案
场景1:HTML中 以实体字符串形式存在
如果你的div内容里 是未解析的实体文本(比如直接写在HTML里的 ),用带负向预查的正则,精准排除 后再移除其他空白:
const targetDiv = document.querySelector('div'); targetDiv.innerHTML = targetDiv.innerHTML.replace(/(?! )\s/g, '');
场景2: 已解析为非断空格字符(U+00A0)
如果浏览器已经把 解析成了Unicode非断空格字符(字符串中对应\u00A0),\s会匹配这个字符,所以直接指定要移除的普通空白类型,避开非断空格:
const targetDiv = document.querySelector('div'); targetDiv.textContent = targetDiv.textContent.replace(/[\t\n\f\r ]/g, '');
也可以用更简洁的正则,明确排除非断空格:
targetDiv.textContent = targetDiv.textContent.replace(/[^\S\u00A0]/g, '');
内容的提问来源于stack exchange,提问作者dsfddg dggd
相关产品推荐
相关产品推荐

