[英]Remove all line-breaks, but except only one break?
我有以下文字由用户发送,带有换行符
Text of example in line 1.
(break line)
(break line)
(break line)
The text is very nice...
(break line)
(break line)
The end.
预期结果:
Text of example in line 1.
The text is very nice...
The end.
NOT: Text of example in line 1. The text is very nice... The end.
我如何在通过PHP的AJAX接收的JavaScript( str.replace
)中做到这一点
$text = strip_tags($text, '<br>');
谢谢您的回答! 但是我测试了所有..然后我发现我的DIV正在生成HTML代码,我相信这就是为什么它不起作用(RegEx)。 如何忽略HTML元素以使文本带有换行符?
您可以使用正则表达式替换。
str = str.replace(/\n{2,}/g, "\n");
{2,}
表示匹配前一个表达式的2个或多个。 因此,包含2个或更多换行符的任何序列都将替换为一个换行符。
尽管@Barmar的答案是正确的,但它不适用于不同的OS /平台。
不同的OS使用不同的字符组合用作换行符。
\\r\\n
= CR LF \\n
= LF \\r
= CR 参见\\ r \\ n,\\ r,\\ n它们之间有什么区别?
我将建议以下可在各个平台上运行的RegEx。
str = str.replace(/(\r\n?|\n){2,}/g, '$1');
说明:
()
:捕获组 \\r\\n?
:匹配\\r
后跟\\n
可选)。 因此匹配
\\r\\n
或 \\r
|
:RegEx中的OR条件 \\n
:匹配\\n
{2,}
:匹配先前的字符两次或更多次 g
:全局标志 $1
:第一个捕获的组,即OS支持的单个换行符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.