【问题标题】:How to replace underscores with spaces?如何用空格替换下划线?
【发布时间】:2012-08-04 17:25:38
【问题描述】:

我有一个包含对象的数组,其中一些对象在字符串中包含下划线。

例子:

{"name": "My_name"}

但是我在多个地方调用了 name 函数,一个这样的地方是在需要下划线的图像标签中,使用 JavaScript 我想选择其中包含名称的某个 div 并将下划线替换为空格。

例子:

<div>
 <div class="name">
  My_name
 </div>
 <img src="My_name.jpg"/>
</div>

div.name 中我希望它说My name 而不是My_name

【问题讨论】:

标签: javascript jquery html


【解决方案1】:

您可以用空格替换字符串中的所有下划线,如下所示:

str.replace(/_/g, ' ');

所以在放入内容之前就这样做。如果之后需要执行替换,请使用each循环:

$('.name').each(function () {
    this.textContent = this.textContent.replace(/_/g, ' ');
});

【讨论】:

  • 请注意,用正则表达式编写的第一部分没有单引号或双引号
【解决方案2】:

ES2021 引入了漂亮的replaceAll()-function,这意味着它可以写成:

str.replaceAll('_', ' ')

如果你想做多个元素,只需循环它们并使用forEach()

const elements = document.querySelectorAll('.name')   
elements.forEach(e => e.innerText = e.innerText.replaceAll('_', ' '))

【讨论】:

  • 很高兴知道,我还没有太多机会回顾 ES2021,但这确实是有用的信息
猜你喜欢
  • 2010-11-03
  • 2011-07-12
  • 2020-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-08
相关资源
最近更新 更多