Javascript函数:将换行符用作\ n而不是实际呈现它们

问题描述 投票:0回答:2

我正在研究一种从文本区域输入接收文本的功能,目的是保留换行符。然后,函数将文本作为函数的参数,例如:function get_text(val){ ... }。从textarea接收的值是:

$('#textarea').val();

例如,单击按钮后,文本区域中的值将传递给get_text()函数,例如:

$('#button').click(function(){
    get_text($('#textarea').val());
});

然后,该函数将使用保留的换行符,因为该值来自文本区域。但是问题出在这里,当我将textarea的值传递给get_text()函数时,我在控制台中收到一条错误消息,指出:意外的标识符,因为参数已被分割成几行,例如:

如果输入文本为:(第1行)我的(第2行)文本(第3行)(第4行)此处

该函数接受文本并输出换行符:

get_text("My   --- (×)Error appears here
text
is
here");

我正在尝试使用该函数中来自textarea的换行符,该函数会在遇到每个换行符后执行一些任务,因此除非有另一种执行任务的方法,否则摆脱掉换行符不是一种选择。

这里唯一的问题实际上是将文本传递给函数,例如:

get_text($('#textarea').val());
--- should result to ---
get_text('My\ntext\nis\nhere');
--- instead of actually outputting the newlines ---

与该功能配合良好。有没有一种方法可以在不打印换行符的情况下将文本传递给函数,而是将其显示为\ n?

这是get_text函数:

function get_text(val){
let n = /[\n]/;
let i;
let inner = [];
for(i = 0; i < val.length; i++){
inner.push('<span>' + val[i] + '</span>';
if(n.test(val[i] == true){
inner.push('<span class="newline">' + val[i] + '</span>';
}
}
return inner.join("");
}

同样,问题甚至不在函数中,只有当值传递给函数时,它才分成几行……而且不,我没有使用eval

是,只有在从表单中获取错误后,我才会收到错误

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS94eklaaS5qcGcifQ==” alt =“在此处输入图像描述”>“ >>

我正在研究一种从文本区域输入接收文本的功能,目的是保留换行符。然后,该函数将文本作为该函数的参数,例如:function ...

javascript newline
2个回答
1
投票

您可以简单地用反斜杠(\)和n字符替换它们。


© www.soinside.com 2019 - 2024. All rights reserved.