如何使用 JavaScript 从字符串中删除所有换行符?
字符串中的换行符因平台而异,但最常见的有以下几种:
- Windows: \r\n 回车后跟字符。
- Linux: \n 只是一个字符。
- 较旧的 Mac: \r 只是一个回车字符。
有两种方法可以完成此任务。其中一种方法是使用传统的编程循环并一次访问每个字符。另一个是使用正则表达式。
切片缝合法:是解决这个问题的基本方法。访问字符串的每个字符并以删除换行符和回车字符的方式对它们进行切片。
代码片段:
var newstr = "";
for( var i = 0; i < str.length; i++ )
if( !(str[i] == '\n' || str[i] == '\r') )
newstr += str[i];
所有这些代码片段只是将所有不是“换行符”或“回车符”的字符复制到另一个变量。但是,此解决方案有很多开销,因此不是删除换行符的最佳方法。
正则表达式:此方法使用正则表达式来检测和替换字符串中的换行符。它与要替换的字符串一起被输入替换函数,在我们的例子中是一个空字符串。
String.replace( regex / substr, replace with )
覆盖所有类型的换行符的正则表达式是
/\r\n|\n|\r/gm
如您所见,此正则表达式涵盖了由|分隔的所有情况。运算符。这可以简化为
/[\r\n]+/gm
其中g和m用于全局和多行标志。
代码片段:
function remove_linebreaks( var str ) {
return str.replace( /[\r\n]+/gm, "" );
}
最好的部分是,这种方法的性能几乎是前一种方法的 10 倍。
例子:
Remove all line breaks from
a string using JavaScript
Method 1:
Method 2:
输出:
- 在点击按钮之前:
- 点击按钮后: