![](/img/trans.png)
[英]REGEX replace function not working for line break at the end of the string in Apps Script
[英]Regex - replace multiple line breaks with two line break and remove line break if at the end?
我这样做(+ JSON.stringify())通过ajax将换行发送到我的mysql服务器:
var newChatComment = varChatComment.replace(/\r\n|\r|\n/g,'\n');
我怎样才能用两个换行符替换多个换行符,如果换行符是否在最后...删除换行符?
编辑:指向的重复示例不考虑在换行符结束时删除换行符的事实。 所以这是一个新问题
如果您需要在字符串的开头保留一个换行符,请使用
var varChatComment = "\\r\\n\\n1\\r\\n2\\n\\n\\n3\\r\\r\\n4\\r\\n\\r\\n"; var newChatComment = varChatComment.replace(/((?:\\r\\n?|\\n)+)$|(?:\\r\\n?|\\n){2,}/g, function ($0,$1) { return $1 ? '' : '\\n\\n'; }); console.log(newChatComment);
请注意,该模式是围绕匹配的(?:\\r\\n?|\\n)
构造构建的:
\\r\\n?
- CR和可选的LF |
- 要么 \\n
- LF符号。 细节 :
((?:\\r\\n?|\\n)+)$
- 字符串末尾有1个或更多换行符(将被删除) |
- 要么 (?:\\r\\n?|\\n){2,}
- 2个或更多换行符(任何样式)(这将变为2个换行符。 ((?:\\r\\n?|\\n)+)$|
alternative匹配字符串末尾的任何换行符,如果找到,则用空字符串替换这些换行符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.