如何在javascript中用空格替换换行符/换行符?

时间:2012-03-24 06:50:11

标签: javascript regex

我有一个var,其中包含以这种格式列出的大量单词(数百万):

var words =  "
car
house
home
computer
go 
went
";

我想创建一个函数,用空格替换每个单词之间的换行符。

所以结果看起来像这样:

car house home computer go went

4 个答案:

答案 0 :(得分:60)

您可以使用.replace()功能:

words = words.replace(/\n/g, " ");

请注意,您需要使用正则表达式上的g标记来替换,以使用空格而不是第一个替换所有换行符。

工作演示:http://jsfiddle.net/jfriend00/VrAw2/

答案 1 :(得分:34)

如果有多个换行符(换行符号),并且可能同时包含\r\n,则需要替换所有后续换行符 一个空格,使用

var new_words = words.replace(/[\r\n]+/g," ");

请参阅regex demo

要匹配所有Unicode换行符并替换/删除它们,请将\x0B\x0C\u0085\u2028\u2029添加到上述正则表达式中:

/[\r\n\x0B\x0C\u0085\u2028\u2029]+/g

/[\r\n\x0B\x0C\u0085\u2028\u2029]+/g表示:

  • [ - 开始匹配其中定义的任何单个字符的正字符类:
    • \r - (\x0D) - \n] - 回车(CR)
    • \n - (\x0A) - 换行符(LF)
    • \x0B - 一个行列表(LT)
    • \x0C - 表单Feed(FF)
    • \u0085 - 下一行(NEL)
    • \u2028 - 行分隔符(LS)
    • \u2029 - 段落分隔符(PS) ] - 字符类的结尾
  • + - 一个量化器,使正则表达式引擎与前一个原子(此处的字符类)匹配一次或多次(连续的换行符匹配)
  • /g - 查找并替换所提供字符串中的所有匹配项。



var words = "car\r\n\r\nhouse\nhome\rcomputer\ngo\n\nwent";
document.body.innerHTML = "<pre>OLD:\n" + words + "</pre>";
var new_words = words.replace(/[\r\n\x0B\x0C\u0085\u2028\u2029]+/g," ");
document.body.innerHTML += "<pre>NEW:\n" + new_words + "</pre>";
&#13;
&#13;
&#13;

答案 2 :(得分:4)

代码:(已修复)

var new_words = words.replace(/\n/g," ");

答案 3 :(得分:1)

一些简单的解决方案看起来像

words.replace(/(\n)/g," ");