首页 > 解决方案 > 为什么 .replace 不能在 .map 中工作

问题描述

我有一个正则表达式用于替换两个转义字符。我可以通过直接访问它们来替换它们,但不能使用 map 函数。有人可以解释我的误解吗?

var entry = [ '\n000087',
  '1',
  '000055555',
  'admin',
  '1',
  '0',
  '2018/07/06',
  '08:53:14\t' ];

entry = entry.map((item)=>{
    return item.replace('/\\(?:[a-z])/g','');
});
console.log(entry);//does not remove \n or \t
console.log(entry[0].replace('/\\(?:[a-z])/g','')); // does remove \n

标签: javascriptregexdictionaryreplace

解决方案


试试这个代码。正如人们所提到的,您没有使用正确的正则表达式语法。我的代码只是删除了换行符和制表符。

var entry = [ '\n000087',
  '1',
  '000055555',
  'admin',
  '1',
  '0',
  '2018/07/06',
  '08:53:14\t' ];

entry = entry.map((item)=>{
    return item.replace(/[\t\n]+/g,'');
});

推荐阅读