使用其他javascript删除字符串中字符的所有实例
我需要用空格替换所有
。 下面是动态吐出的字符串,我需要隐藏br标签……
M,W,Th,F 7:30 AM - 4:00 PM
Tu 7:30 AM - 6:00 PM
我做错了什么?是否可以用逗号替换所有其他br标签,除了最后一个,将由空格重新标记
$('.WorkingHours').text().replace(/
/g, " ");
您的代码有三个问题:
-
$('.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
Tu 7:30 AM - 6:00 PM -
你必须逃避表达式中的内部反斜杠。 编辑:看看
.html()
的输出它实际上不包含
但是
。 这可能取决于文档的doctype( 不是工作示例 , 工作示例 )。 -
您必须将值分配回元素。
你可能会这样做
$('.WorkingHours').html(function(i, html) { return html.replace(/
/g, " "); });
但是根本不使用正则表达式会更清晰:
$('.WorkingHours').find('br').replaceWith(' ');
这将查找所有br
元素节点,并将其替换为仅包含空格的文本节点。
DEMO
更新 (响应您的一条评论):如果您想用句号替换最后一个br
,可以使用.last()
:
$('.WorkingHours') .find('br').last().replaceWith('.') .end().replaceWith(' ');
DEMO
情侣:
使用html()
获取节点的HTML:
var rawHTML = $('.WorkingHours').html();
使用\
来转义正则表达式中的/
:
/
/g
将HTML设置为替换函数的返回值:
$('.WorkingHours').html(rawHTML.replace(/
/g, ' ');
最终产品:
var rawHTML = $('.WorkingHours').html(); $('.WorkingHours').html(rawHTML.replace(/
/g, ' ');
使用.text()
代替.html()
来删除html标签
.text()
只返回内部文本,而不是内部html。
我认为你需要逃避表达式中的正斜线,例如
$('.WorkingHours').text().replace(/
/g, " ");