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

How to replace a new line character in Javascript?

本文关键字:字符 替换 Javascript      更新时间:2023-09-26

Hi =)我有一些代码,我正在努力。我有一个函数来替换特定的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;
}

这是我试图删除一个新的行字符,并将其替换为"'n",以便我可以将其存储在JSON格式的一个例子。它到达了一个点,它说的是text[i] = "'n",但实际上并没有将这个字符设置为"'n"。有人能告诉我我做错了什么吗?谢谢你。

"'n"是换行符。你用已经存在的东西替换它们,让String保持不变。如果您想要实际的字符'和n,您需要屏蔽反斜杠''n并插入。

似乎你正在用"'n"代替"'n"。要替换''n',您需要通过添加额外的'''或''n'来转义它

我认为你最好在这里使用一点正则表达式。试试下面的代码(我还特意重命名了你的函数,让它的名字更有描述性):

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

此正则表达式查找所有制表符't并将其替换为由转义回车和新行组成的字符串。

您可以使用'n和't ..

你也可以检查出'n和'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");

首先:HTML字符不存在…

第二:我不明白你为什么做text = text.split("");,你将迭代数组而不是字符串,花费时间和内存…

第三个:''n' charCode是10…

如果您想将HTML格式的文本重写为纯文本,您可以这样做:

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