正则将空格替换为 之后html上直接用文本展示了,并没有转化为空格

vvhl
  • 636

正则将空格替换为 之后html上直接将这个 展示为文本了,并没有替换成空格,这个该怎么改呢?
我的代码是:

this.preTestSpeedData = this.preTestSpeedData.replace(/\s+/g,' ');

clipboard.png

回复
阅读 3.5k
4 个回答
✓ 已被采纳
  <div id='div'></div>

  <script>
    var text = ' This is  a   dummy   text!    ';
    document.getElementById('div').innerText = text.replace(/ /g, '\u00a0');
  </script>

'&nbsp;' 只有设置为 innerHTML 有效,用 '\u00a0' 设置 textContent, innerHTML, innerText都有效。

如果是这种场景,为了防xss,建议使用实体和非实体的转化:

function htmlEncode(html) {
    var sub = document.createElement('div');
    sub.textContent != null ? sub.textContent = html : sub.innerText = html;
    var output = sub.innerHTML;
    sub = null;
    return output;
}

function htmlDecode(text) {
    var sub = document.createElement('div');
    sub.innerHTML = text;
    var output = sub.textContent || sub.innerText;
    sub = null;
    return output;
}

你可以尝试一下v-html,应该可以解决你现在的困境。

<div v-html="preTestSpeedData"></div>
前端妹崽
  • 2
新手上路,请多包涵
this.preTestSpeedData = this.preTestSpeedData.replace(/\s+/g,' &nbsp; ');

试试这样写法,遇到同样的问题,用前后加空格 解析显示问题

你知道吗?

宣传栏