在函数之前用变量 Javascript 中的 space 替换新行
Replace new line with space in variable Javascript before function
我有以下代码片段:
<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 中的文本是 2 行,即有一个 \r\n 将第一行与第二行分开。
当我调用该函数时,它甚至在我得到替换部分之前就给我一个错误。 (调试器说由于换行,块没有正确关闭)
有什么办法可以解决这个问题吗?我只需要摆脱换行符或者更好地保留它但让脚本 运行 正确。
感谢您的帮助。
流浪汉
首先像这样定义你的刺痛,
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);
}
}
该代码中有两个基本语法错误:
除非用反斜杠转义,否则字符串文字中不能有换行符。 (您可以在 ES2015 模板文字中使用,但不能在字符串文字中使用。)如果这样做,换行符将 not 包含在字符串中。请改用 \r\n
。
您在函数
上缺少结尾 }
除此之外,没有必要循环; JavaScript 的 replace
可以接受带有 g
标志的正则表达式(对于 "global"),因此:
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
.
的单个调用替换了循环
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);
}
}
我有以下代码片段:
<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 中的文本是 2 行,即有一个 \r\n 将第一行与第二行分开。 当我调用该函数时,它甚至在我得到替换部分之前就给我一个错误。 (调试器说由于换行,块没有正确关闭)
有什么办法可以解决这个问题吗?我只需要摆脱换行符或者更好地保留它但让脚本 运行 正确。
感谢您的帮助。
流浪汉
首先像这样定义你的刺痛,
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);
}
}
该代码中有两个基本语法错误:
除非用反斜杠转义,否则字符串文字中不能有换行符。 (您可以在 ES2015 模板文字中使用,但不能在字符串文字中使用。)如果这样做,换行符将 not 包含在字符串中。请改用
\r\n
。您在函数
上缺少结尾
}
除此之外,没有必要循环; JavaScript 的 replace
可以接受带有 g
标志的正则表达式(对于 "global"),因此:
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
.
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);
}
}