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

IT技术 javascript regex
2021-02-21 21:29:35

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

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

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

所以结果会是这样的:

car house home computer go went
4个回答

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

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

请注意,您需要g正则表达式上标志来获取替换以将所有换行符替换为空格,而不仅仅是第一个。

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

为什么投反对票?不提供任何解释的反对者无助于我们改进答案(从而使整个社区受益)。
2021-04-25 21:29:35

如果有多个换行符(换行符)并且可以同时存在\ror \n,并且您需要一个空格替换所有后续换行符,请使用

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

正则表达式演示

要匹配所有 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 - 换页 (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>";

代码:(固定)

var new_words = words.replace(/\n/g," ");
你真的试过这个吗?它似乎对我不起作用:jsfiddle.net/jfriend00/Zn4WE/1
2021-05-02 21:29:35
@jfriend00 @Madmartigan 真的。有时,明显的被忽略了......(没有/g标志,只替换第一次出现)
2021-05-18 21:29:35

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

words.replace(/(\n)/g," ");
它们确实是多余的,但我更愿意让它们更清晰
2021-05-10 21:29:35
为什么括号在/(\n)/他们不需要。
2021-05-12 21:29:35
你真的试过这个吗?它似乎对我不起作用:jsfiddle.net/jfriend00/Zn4WE/1
2021-05-14 21:29:35