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)
您的代码有三个问题:
$('.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>
你必须逃避表达式中的内部反斜杠.编辑:看看.html()
它的输出实际上不包含<br />
但是<br>
.这可能取决于文档的doctype(不是工作示例,工作示例).
您必须将值分配回元素.
你可能会这样做
$('.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
元素节点,并将其替换为仅包含空格的文本节点.
更新(响应您的一条评论):如果您想br
用句号替换最后一个,您可以使用.last()
:
$('.WorkingHours')
.find('br').last().replaceWith('.')
.end().replaceWith(' ');
Run Code Online (Sandbox Code Playgroud)