我在textarea中有一个文本,我使用.value属性读取它。

现在我想从我的文本中删除所有的换行符(当你按Enter时产生的字符)现在使用正则表达式替换,但我如何在正则表达式中指示换行符?

如果不可能,还有别的办法吗?


当前回答

简单,我们可以删除新的行使用文本。Replace (/\n/g, " ")

const text = '学生明年\n GO \n For Trip \n'; console.log("Original: ", text); Var removed_new_line = text。Replace (/\n/g, " "); console.log("New: ", removed_new_line);

其他回答

这将用空格替换换行符。

someText = someText.replace(/(\r\n|\n|\r)/gm,"");

阅读这篇文章。

在mac上,只需在regexp中使用\n来匹配换行符。代码是字符串。Replace (/\n/g, "), ps:后面的g表示匹配所有,而不仅仅是第一个。

在窗户上,它将是\r\n。

试试下面的代码。它适用于所有平台。

var break_for_winDOS = 'test\r\nwith\r\nline\r\nbreaks';
var break_for_linux = 'test\nwith\nline\nbreaks';
var break_for_older_mac = 'test\rwith\rline\rbreaks';

break_for_winDOS.replace(/(\r?\n|\r)/gm, ' ');
//output
'test with line breaks'

break_for_linux.replace(/(\r?\n|\r)/gm, ' ');
//output
'test with line breaks'

break_for_older_mac.replace(/(\r?\n|\r)/gm, ' ');
// Output
'test with line breaks'

如果你想删除所有的控制字符,包括CR和LF,你可以使用这个:

myString.replace(/[^\x20-\x7E]/gmi, "")

它将删除所有不可打印的字符。这些字符都不在ASCII十六进制空间0x20-0x7E内。请根据需要随意修改HEX范围。

使用下面的函数,让您的生活变得简单

最简单的方法是使用正则表达式来检测和替换字符串中的换行符。在这种情况下,我们使用replace函数和要替换的字符串,在我们的情况下是一个空字符串。

function remove_linebreaks( var message ) {
    return message.replace( /[\r\n]+/gm, "" );
}

在上面的表达式中,g和m是全局和多行标记