使用其他javascript删除字符串中字符的所有实例

Anj*_*rma 0 javascript regex jquery replace

我需要<br />用空格替换所有.以下是动态吐出的字符串,我需要隐藏br标签...

M,W,Th,F 7:30 AM - 4:00 PM<br />Tu 7:30 AM - 6:00 PM<br />
Run Code Online (Sandbox Code Playgroud)

我做错了什么?是否可以用逗号替换所有其他br标签,除了最后一个,将由空格重新标记

$('.WorkingHours').text().replace(/<br />/g, " "); 
Run Code Online (Sandbox Code Playgroud)

Fel*_*ing 5

您的代码有三个问题:

  1. $('.WorkingHours').text()将不包含任何HTML(因此也没有br标记),它只返回元素的文本内容.
    $('.WorkingHours').text()收益:

    M,W,Th,F 7:30 AM - 4:00 PMTu 7:30 AM - 6:00 PM

    $('.WorkingHours').html()回报:

    M,W,Th,F 7:30 AM - 4:00 PM<br>Tu 7:30 AM - 6:00 PM<br>

  2. 你必须逃避表达式中的内部反斜杠.编辑:看看.html()它的输出实际上不包含<br />但是<br>.这可能取决于文档的doctype(不是工作示例,工作示例).

  3. 您必须将值分配回元素.

你可能会这样做

$('.WorkingHours').html(function(i, html) {
    return html.replace(/<br\s*\/?>/g, " "); 
});
Run Code Online (Sandbox Code Playgroud)

但是根本不使用正则表达式会更加清晰:

$('.WorkingHours').find('br').replaceWith(' ');
Run Code Online (Sandbox Code Playgroud)

这将查找所有br元素节点,并将其替换为仅包含空格的文本节点.

DEMO

更新(响应您的一条评论):如果您想br用句号替换最后一个,您可以使用.last():

$('.WorkingHours')
 .find('br').last().replaceWith('.')
 .end().replaceWith(' ');
Run Code Online (Sandbox Code Playgroud)

DEMO