我在textarea中有一个文本,我使用.value属性读取它。
现在我想从我的文本中删除所有的换行符(当你按Enter时产生的字符)现在使用正则表达式替换,但我如何在正则表达式中指示换行符?
如果不可能,还有别的办法吗?
我在textarea中有一个文本,我使用.value属性读取它。
现在我想从我的文本中删除所有的换行符(当你按Enter时产生的字符)现在使用正则表达式替换,但我如何在正则表达式中指示换行符?
如果不可能,还有别的办法吗?
当前回答
如何找到换行符在不同的操作系统编码中是不同的。Windows是\r\n,但Linux只使用\n,而苹果使用\r。
我在JavaScript的换行符中发现了这个:
someText = someText.replace(/(\r\n|\n|\r)/gm, "");
这应该会删除所有的换行符。
其他回答
如果你想删除所有的控制字符,包括CR和LF,你可以使用这个:
myString.replace(/[^\x20-\x7E]/gmi, "")
它将删除所有不可打印的字符。这些字符都不在ASCII十六进制空间0x20-0x7E内。请根据需要随意修改HEX范围。
我正在添加我的答案,这只是上面的一个插件, 对于我来说,我尝试了所有的/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, ' '));
在mac上,只需在regexp中使用\n来匹配换行符。代码是字符串。Replace (/\n/g, "), ps:后面的g表示匹配所有,而不仅仅是第一个。
在窗户上,它将是\r\n。
var str = "bar\r\nbaz\nfoo";
str.replace(/[\r\n]/g, '');
>> "barbazfoo"