在textarea中最多允许2个换行符

我想在文本区域中最多允许2个换行符。
我希望在PHP或PHP + JavaScript / jQuery中使用此解决方案。
当用户输入超过2个换行符时,它们将被2个换行符替换。

输入:

0 1 2 3 4 

无论我尝试和失败

  
1
2
3
4

只做$subject = preg_replace('/\n{2,}/', "\n\n", $subject); 这将捕获两个或更多新行,并用两个换行符替换它。

编辑

如果你想更安全,可以将模式更改为/[\n\r]{2,}/以捕获回车,但我认为这是不必要的。

试试这个:

 $data = "whatever data with \r\n\r\n\r\n more than \r\n two lines \r\n\r\n example"; $fixed_data = preg_replace( "\r\n\r\n([\r\n]+)", "\r\n\r\n", $data); echo $fixed_data; // should output: whatever data with \r\n\r\n more than \r\n two lines \r\n\r\n example 

上面的正则表达式替换应该查找两个新行(可选的无限多个新行)并用2个新行替换它们。

🙂

 $data = preg_replace('/(\r?\n){3,}/',"\n\n",$data);