Javascript 正则表达式-用两个换行符替换多个换行符,如果在末尾,则删除换行符?

Javascript 正则表达式-用两个换行符替换多个换行符,如果在末尾,则删除换行符?,javascript,regex,Javascript,Regex,我正在做(+JSON.stringify()),通过ajax将换行符发送到我的mysql服务器: var newChatComment = varChatComment.replace(/\r\n|\r|\n/g,'\n'); 如何用两个换行符替换多个换行符,如果换行符在末尾。。。移除断线 另外,如果只有一个换行符。。。保持这条线在一点断 编辑:指向的重复示例不考虑在断线结束时移除断线的事实。因此,这是一个新问题如果需要在字符串开头保留一个换行符,请使用 var varchatcomen

我正在做(+JSON.stringify()),通过ajax将换行符发送到我的mysql服务器:

var newChatComment = varChatComment.replace(/\r\n|\r|\n/g,'\n');
如何用两个换行符替换多个换行符,如果换行符在末尾。。。移除断线

  • 另外,如果只有一个换行符。。。保持这条线在一点断

编辑:指向的重复示例不考虑在断线结束时移除断线的事实。因此,这是一个新问题

如果需要在字符串开头保留一个换行符,请使用

var varchatcoment=“\r\n\n1\r\n2\n\n\n3\r\r\n4\r\n\r\n”;
var newchatcoment=varchatcoment.replace(/((?:\r\n?|\n)+$|)(?:\r\n?|\n){2,}/g,函数($0,$1){
返回$1?“”:“\n\n”;
});

console.log(newchatcoment)如果需要在字符串开头保留一个换行符,请使用

var varchatcoment=“\r\n\n1\r\n2\n\n\n3\r\r\n4\r\n\r\n”;
var newchatcoment=varchatcoment.replace(/((?:\r\n?|\n)+$|)(?:\r\n?|\n){2,}/g,函数($0,$1){
返回$1?“”:“\n\n”;
});

console.log(newchatcoment):删除字符串末尾的换行符太小,不能考虑这是一个全新的问题。关于从字符串的不同位置删除26个不同字符,我们不需要26个问题。@Cerbrus:这个问题与您在结束时提出的问题不同。我同意菲利普的观点。我把所有的答案都看了一遍。@WiktorStribiżew:那么我就有了欺骗目标。请重新关闭此页,因为它明显重复了多个问题。@Cerbrus:要求在7分钟前更改,请参阅更新。这不可能是这四个人中任何一个的愚弄。但请不要解除你的否决票。它帮助我“保持健康”:“WiktoStrubi EW:我不认为这个变化非常重要。此外,这也不是以前从未问过的。你认为我投下了这一票,但实际上,你不知道是谁否决了它。至于你的编辑:删除一个字符串末尾的断线太小了,不能考虑这是一个全新的问题。关于从字符串的不同位置删除26个不同字符,我们不需要26个问题。@Cerbrus:这个问题与您在结束时提出的问题不同。我同意菲利普的观点。我把所有的答案都看了一遍。@WiktorStribiżew:那么我就有了欺骗目标。请重新关闭此页,因为它明显重复了多个问题。@Cerbrus:要求在7分钟前更改,请参阅更新。这不可能是这四个人中任何一个的愚弄。但请不要解除你的否决票。它帮助我“保持健康”:“WiktoStrubi EW:我不认为这个变化非常重要。此外,这也不是以前从未问过的。你假设我投了反对票,但实际上,你不知道是谁投了反对票。请注意,你可以做
“foo”。trimRight()
@Cerbrus:是的,如果问题是用Chrome/FF或ES6标记的,我会使用箭头函数而不是匿名函数。@Wiktor。非常感谢。。。您的示例将所有换行数减少为一个换行。。。但我想我需要的是把它减少到两个换行符,比如。。。返回$1?'':'\n\n';但在这种情况下。。。如果只有一个换行符。。。它还返回两个换行符。你怎么能排除这个呢?@PhilippM:Use
/(?:\r\n?|\n)+$|(?:\r\n?|\n){2,}/g
@Wiktor:就这样,谢谢。它也是跨浏览器兼容的吗?请注意,您可以执行
“foo”.trimRight()
@Cerbrus:是的,如果问题是用Chrome/FF或ES6标记的,我会使用箭头函数而不是匿名函数。@Wiktor。非常感谢。。。您的示例将所有换行数减少为一个换行。。。但我想我需要的是把它减少到两个换行符,比如。。。返回$1?'':'\n\n';但在这种情况下。。。如果只有一个换行符。。。它还返回两个换行符。你怎么能排除这个呢?@PhilippM:Use
/(?:\r\n?|\n)+$|(?:\r\n?|\n){2,}/g
@Wiktor:就这样,谢谢。它也是跨浏览器兼容的吗?