在Javascript数组中,使用逗号替换"<br>↵"字符串

5
当我将数组打印到控制台时,我得到以下符号:“<br>↵”。如何在JS数组中用逗号替换所有“<br>↵”的实例?例如:
["767 5th Ave<br>↵New York, NY 10153, USA", "677 5th Ave<br>↵New York, NY 10022, USA"]

为了

["767 5th Ave, New York, NY 10153, USA", "677 5th Ave, New York, NY 10022, USA"]

该值来自于:

<address class="main">
  <p>767 5th Ave<br>
  New York, NY 10153, USA</p>
</address>

使用以下代码:
$("address.main p:not(:empty)").each(function() {
  addresses_google[0].push( $(this).html() );
});

所以循环遍历它,并在每个索引上执行字符串替换。 - epascarello
1个回答

4

var addresses = ["767 5th Ave<br>↵New York, NY 10153, USA", "677 5th Ave<br>↵New York, NY 10022, USA"];

var formattedAddresses = addresses.map(function(str) {
  return str.replace(/<br>\u21b5/g, ", ");
});

console.log(formattedAddresses);

更新:

看起来这个数组中被推送了带有换行符(被解释为 ↵ 符号,用于可视化换行)的HTML,而不是纯字符串文字。

$("address.main p:not(:empty)").each(function() { 
  addresses_google[0].push( $(this).html() );
});

现在我们知道这是一个循环的结果,我们可以在该循环的代码块中完成所有操作,甚至不需要创建新的数组:
$("address.main p:not(:empty)").each(function() {
  var breaks = /<br>(\r\n|\n|\r)/gm;
  var formattedHTML = this.innerHTML.replace(breaks, ', ');

  addresses_google[0].push(formattedHTML);
});

你确定吗?尝试刷新页面。从你描述的帖子中,我得到了期望的结果:["767 5th Ave, New York, NY 10153, USA", "677 5th Ave, New York, NY 10022, USA"] - Carl Edwards
是的,我确定。然而,数组的初始化方式与我的示例不完全相同(没有使用“var = ...”),它从html中获取其值。当我使用console.log时,它会按照我在问题中概述的方式打印。 - Pim
我有点困惑。你是基于我的输出还是你那边完全不同的东西?换句话说,你是在尝试在原来问题之外的代码中实现我的答案吗?这就是它不能工作的地方吗? - Carl Edwards
没问题。是的,请继续这样做。 - Carl Edwards
1
可能需要解决要更改的特定字符,但听起来@CarlEdwards有一个很好的解决方案。 - jeremy
显示剩余8条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接