连接的空格不会显示在结果中

时间:2014-03-13 03:48:21

标签: javascript html concatenation whitespace

我想要的填充没有正确连接,即没有出现白色空格。不知道为什么它没有显示出来并且已经花了几个小时调整代码而没有解决方案。

var padWord = function(word){
    if(endsInPunctuation(word)){
        trueLength = (word.length)-1;
    }else{
        trueLength = word.length;
    }
    switch(trueLength){
        case 1:
            word = "   " + word.fontcolor("red");
            break;
        case 2:
            word = "  " + word.replaceAt(1, word.charAt(1), "red");
            break;
        case 3:
            word = "  " + word.replaceAt(1, word.charAt(1), "red");
            break;

2 个答案:

答案 0 :(得分:7)

默认情况下,浏览器会折叠多个空白字符。使用不间断空格&nbsp;或css white-space:pre;或html标记<pre>

答案 1 :(得分:2)

字符串连接没有错。空格 被添加到字符串中。问题在于您如何显示结果。在大多数情况下,内容周围的空格会在HTML元素中折叠。有几种方法可以解决这个问题。

  1. 使用CSS通过将此行添加到CSS来覆盖HTML元素的默认行为:

    #screen{
        ...
        white-space: pre;
    }
    
  2. 将空格转换为将显示的html实体。改变这个:

    textShow.innerHTML = word;
    

    对此:

    textShow.innerHTML = word.replace(/\s+/, function(s) {
        return s.replace(/\s/g, '&nbsp;');
    });