在函数前面用变量Javascript中的空格替换新行

Replace new line with space in variable Javascript before function

本文关键字:空格 替换 新行 Javascript 函数 前面 变量      更新时间:2023-09-26

我有以下代码snipplet:

<script>
    var textstring = 
    'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. 
Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.';
function insertNewLines(textstr, nos) {
var resulttext = '';
textstr = textstr.replace("'n", "<br />");
while (textstr.length > 0) {
resulttext += textstr.substring(0, nos) + '<br/>';
textstr = textstr.substring(nos);
}

textstring中的文本是两行,即第一行和第二行之间有一个分隔符。当我调用函数时,它甚至在我得到替换部分之前就给了我一个错误。(调试器表示,由于线路中断,块未正确关闭(

有什么办法我可以绕过它吗?我只需要去掉换行符,或者更好地保留它,但让脚本正确运行。

谢谢你的帮助。

Vagabond

该代码中有两个基本语法错误:

  1. 除非用反斜杠转义,否则字符串文字中不能有换行符。(您可以在ES2015模板文本中,但不能在字符串文本中。(如果您这样做,换行符将而不是包含在字符串中。请改用'r'n

  2. 您错过了功能的关闭}

除此之外,不需要循环;JavaScript的replace可以接受带有g标志(表示"全局"(的正则表达式,因此:

var textstring =
    'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa.'r'nCum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.';
function insertNewLines(textstr, nos) {
    return textstr.replace(/'r'n/g, "<br />");
}
console.log(insertNewLines(textstring));

我用'r'n替换了文本换行,然后用对replace的单个调用替换了循环。

首先,

var textstring ='Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa.'
Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.';

在函数中添加一个括号,它应该可以工作。

function insertNewLines(textstr, nos) {
var resulttext = '';
textstr = textstr.replace("'n", "<br />");
while (textstr.length > 0) {
resulttext += textstr.substring(0, nos) + '<br/>';
textstr = textstr.substring(nos);
}
}

JavaScript字符串中的换行符应使用反斜杠('(进行转义。

您的变量textstring也需要更新,如下所示。

var textstring =
  'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. '
Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.';
function insertNewLines(textstr, nos) {
  var resulttext = '';
  textstr = textstr.replace("'n", "<br/>");
  while (textstr.length > 0) {
    resulttext += textstr.substring(0, nos) + '<br/>';
    textstr = textstr.substring(nos);
  }
}

您必须用反斜杠转义文本字符串,而且没有右括号。下面的代码是用反斜杠转义的,脚本正在运行。然而,输出是你想要的并没有被检查。

var textstring = 
'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo  ligula eget dolor. Aenean massa.'
Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.';
insertNewLines(textstring,2);
function insertNewLines(textstr, nos) {
var resulttext = '';
textstr = textstr.replace("'n", "<br />");
while (textstr.length > 0) {
resulttext += textstr.substring(0, nos) + '<br/>';
textstr = textstr.substring(nos);
 }
}