如何在Javascript中替换新的行字符?

时间:2016-11-11 00:22:12

标签: javascript html arrays string ascii

嗨=)我有一些我正在努力的代码。我有一个函数来替换特定的html字符值,如标签或新行,但它似乎不能很好地工作。

var replaceHTMLCharacters = function(text){
  text = text.split("");
    for(var i = 0; i < text.length; i++){
        if(text[i].charCodeAt(0) == 10){
            text[i] = "\n";
        }
    }
  text = text.join("");
  console.log(text);
  return text;
}

这是我尝试删除新行字符并将其替换为&#34; \ n&#34;这样我就可以用JSON格式存储它。它达到text[i] = "\n"所指的位置,但实际上并未将此字符设置为"\n"。谁能告诉我我做错了什么?谢谢。

5 个答案:

答案 0 :(得分:2)

&#34; \ n&#34;是一个换行符。您已经用已经存在的内容替换它们,保持字符串不变。如果你想要实际的字符\和n,你需要屏蔽反斜杠\\n并插入它。

答案 1 :(得分:0)

我认为你最好在这里使用一些正则表达式。试试这段代码(我还故意将你的函数重命名为更多描述名称):

function breakOnTab (string) {
    return string.replace(/\t/g, '\r\n')
}

此正则表达式查找所有制表符\t,并用包含转义回车符和新行的字符串替换它们。

答案 2 :(得分:0)

看来你正在取代&#34; \ n&#34;与&#34; \ n&#34;。替换&#39; \ n&#39;你需要通过添加额外的&#39; \&#39;来逃避它。或者&#39; \ n&#39;

答案 3 :(得分:0)

首先:HTML字符不存在...

第二:我不明白为什么你做text = text.split("");,你会迭代一个数组而不是一个字符串,花费时间和记忆......

第三:&#39; \ n&#39; charCode是10 ...

如果要将html格式的文本重写为纯文本,可以执行以下操作:

var replaceHTMLCharacters = function(text){
  text = text.replace(/<br\s*\/?>/g,'\n');
  console.log(text);
  return text;
}

答案 4 :(得分:0)

你可以使用\ n和\ t ..

这样的东西

您还可以查看结帐Difference between \n and \r?

var replaceHTMLCharacters = function(text) {
  var reg = new RegExp(/(\r\n?|\n|\t)/g);
  var ntext = text.replace(reg, "-");
  console.log(ntext);
  return text;
}

replaceHTMLCharacters(`newLine
Text1`)
replaceHTMLCharacters("Tab	text2");

相关问题