我有一个var,其中包含以这种格式列出的大量单词(数百万):
var words = "
car
house
home
computer
go
went
";
我想创建一个函数,用空格替换每个单词之间的换行符。
所以结果看起来像这样:
car house home computer go went
答案 0 :(得分:60)
您可以使用.replace()
功能:
words = words.replace(/\n/g, " ");
请注意,您需要使用正则表达式上的g
标记来替换,以使用空格而不是第一个替换所有换行符。
答案 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;
答案 2 :(得分:4)
代码:(已修复)
var new_words = words.replace(/\n/g," ");
答案 3 :(得分:1)
一些简单的解决方案看起来像
words.replace(/(\n)/g," ");