jquery 如何将下划线替换为空格?

myzjeezk  于 12个月前  发布在  jQuery
关注(0)|答案(2)|浏览(116)

此问题在此处已有答案

How do I replace all occurrences of a string in JavaScript?(78个回答)
27天前关闭
我有一个数组,里面有一些对象,其中一些对象在字符串中包含下划线。
示例如下:

{"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

f0brbegy

f0brbegy1#

您可以使用String.prototype.replace和全局正则表达式将字符串中的所有下划线替换为空格:

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

字符串
因此,只需在内容放入之前执行此操作。或者,如果您需要在之后执行替换,jquery解决方案是:

$('.name').text((i, oldText) =>
    oldText.replace(/_/g, ' '));


它相当于这个普通的DOM API循环:

for (const element of document.getElementsByClassName('name')) {
    element.textContent = element.textContent.replace(/_/g, ' ');
}

iyr7buue

iyr7buue2#

ES 2021引入了漂亮的replaceAll()-函数,这意味着它可以写为:

str.replaceAll('_', ' ')

字符串
如果你想处理多个元素,只需循环遍历它们并使用forEach()

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

相关问题