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

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

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


当前回答

在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'

如果碰巧你不需要这个htm字符&nbsp shile使用str.replace(/(\r\n|\n|\r)/gm, ""),你可以使用这个str.split('\n').join(");

干杯

我正在添加我的答案,这只是上面的一个插件, 对于我来说,我尝试了所有的/n选项,但它不起作用,我看到我的文本来自服务器,用双斜杠,所以我用了这个:

var fixedText = yourString.replace(/(\r\n|\n|\r|\\n)/gm, '');

regex中的换行符是\n,因此您的脚本将是

var test = 'this\nis\na\ntest\nwith\newlines';
console.log(test.replace(/\n/g, ' '));

你可以在正则表达式中用\n表示换行,用\r表示回车。

var str2 = str.replace(/\n|\r/g, "");

不同的操作系统使用不同的行尾,使用不同的\n和\r组合。这个正则表达式将全部替换。