Javascript 插入奇怪的换行符

标签 javascript jquery html arrays ascii

我有一个名为 verses 的数组包含从 ajax 响应创建的字符串。数组的创建方式如下:

verses.push(splitStr[i].replace('\n',''));

后来我创建了一些<span>元素并附加数组中的值。然而,数组中的最后一个元素总是有一个奇怪的行为,因为它包含一个隐藏的 new line ASCII 字符的代码为 10 (在控制台中检查)。现在,当我在控制台中打印时,记录数组中的最后一个元素,得到以下结果:"string" 。然后,我创建包含该字符串的 span 元素,稍后当我从 span 检索值时,我得到:

"string
"

那是因为在创建跨度时它总是插入这个奇怪的 new line特点。所以在源代码中,跨度看起来像:

<span class="answer" onclick="checkAnswer(this)">potopului
</span>

您可以看到结束标记位于下一行。

在控制台中,我使用了一些断点,并从跨度中提取了这个值:"string↵"

现在,有谁知道为什么在创建此跨度时 JavaScript 会插入 new line字符以及为什么它只发生在数组的最后一个元素上?

用于创建 span 元素的代码:

for (var i = 0; i < 3; i++) {
        if (i!=phtml) {
            tags.push("<span class='answer' onclick='checkAnswer(this)'>"+generateRandom(pos)+'</span>'); 
            //generate a  string from the array different from the one with position pos
        }else{
            tags.push("<span class='answer'  onclick='checkAnswer(this)'>"+verses[pos].replace('\n','')+'</span>');
        }
    }
    var output='';
    for (var i = 0; i < tags.length; i++) {
        output = output + tags[i];
    }
    document.getElementsByClassName('v-options')[0].innerHTML = output;

checkAnswer()功能:

function checkAnswer(e){
    var text = e.innerHTML;
    var input = document.getElementsByClassName('hidden-word')[pos];
    if (text == verses[pos]) {
        input.value = verses[pos];
        input.setAttribute('disabled','');
    }
    console.log(":"+text.substring(0, text.length-1) + ":"+verses[pos]+":");
}

最佳答案

有时换行符会以不同的样式打印。通常它是两个特殊字符 \n\r 的组合,因此您只需检查所有可能类型的换行符组合或其丢失的损坏部分。尝试更改您的 RegExp 以匹配它们:

splitStr[i].replace(/\n\r|\n|\r/g, '')

关于Javascript 插入奇怪的换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42117461/

相关文章:

javascript - 将架构从 Normalizr v2 转换为 v3 时遇到问题

javascript - 我想使用 ajax 和 PHP 获取每个帖子数据的喜欢总数

javascript - 为什么 .clone 不复制我的 div?

jquery - 删除单击的jquery时如何删除整个div行

html - 是否可以使用 css 添加图像作为框阴影?

javascript - ruby 到 javascript,可能吗?如何?

javascript - 使用 JavaScript 网格内联编辑,奇怪的行为

C# Regex 替换样式 HEIGHT 标签

javascript - 如何选择这种格式的动态 ID?

javascript - d3.js - 图像 `mouseenter` stopPropagation 抛出错误