【问题标题】:Remove line breaks/spaces from array从数组中删除换行符/空格
【发布时间】:2016-02-08 03:12:03
【问题描述】:

我无法从 javascript 中的文本中删除换行符。这是我正在使用的数据的一个示例:

0: "Christian Pulisic"
1: "↵"
2: "From Wikipedia, the free encyclopedia"
3: "↵" 
4: "Christian Pulisic"
5: "↵"
6: "Personal information"
7: "↵"
8: "Full name   Christian Mate Pulisic[1]"

显然,行空格/换行符或任何你称之为它们的东西,都在污染我得到的数据。

我无法获得以下函数来识别换行符并将其替换为“”,然后我可以通过另一个运行数据的函数轻松地将其从数组中删除。

这是我目前正在使用但不起作用的代码:

for (i in cleanArray){
    cleanArray[i].replace(/(\r\n|\n|\r)/gm,"")
};

console.log(cleanArray);

【问题讨论】:

  • replace() 方法返回一个新字符串,它不会改变原来的字符串。

标签: javascript arrays regex line-breaks


【解决方案1】:

cleanArray[i].replace(/(\r\n|\n|\r)/gm,"") 将返回一个新字符串。此外,字符串在 JavaScript 中是不可变的。改成

for(var i = 0; i < cleanArray.length; ++i)
    cleanArray[i] = cleanArray[i].replace(/(\r\n|\n|\r)/gm,"")

【讨论】:

  • 或更短一点:cleanArray.map(i => i.replace(/(\r\n|\n|\r)/gm, "")
【解决方案2】:

假设显示为"↵" 的字符是实际的换行符

Array#filterString#trim 一起使用

var newArr = arr.filter(el => el.trim());

【讨论】:

  • 试过了,没用:'var cleanArray=[]; for (i in cleanArray){ cleanArray.push(cleanArray[i].trim) }; console.log(cleanerArray);'
  • cleanerArray.push(cleanArray[i].trim) 注意函数 trim 没有被调用。使用cleanerArray.push(cleanArray[i].trim())
  • @Lance 你需要打电话给trim() ^^^^
猜你喜欢
  • 1970-01-01
  • 2015-11-09
  • 2018-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-04
  • 2021-12-22
  • 1970-01-01
相关资源
最近更新 更多