14
carList = cars.innerHTML;
alert(carList);
carList = carList.replace("<center>","").replace("</center>","").replace("<b>","").replace("</b>","");
alert(carList);

在此处输入图像描述

为什么会发生这种情况?我尝试将其拆分为单独的 string.replace() 并给出相同的结果。

4

2 回答 2

21

与字符串一起使用.replace()只会修复您所看到的第一次出现。如果您使用正则表达式执行此操作,则可以指定它应该是全局的(通过在g之后使用 a 指定它),从而获取所有出现的情况。

carList = "<center>blabla</center> <b>some bold stuff</b> <b>some other bold stuff</b>";
alert(carList);
carList = carList.replace(/<center>/g,"").replace(/<\/center>/g,"").replace(/<b>/g,"").replace(/<\/b>/g,"");
alert(carList);

请参阅此小提琴以获取工作示例。

于 2013-10-24T20:16:08.503 回答
3

您可以使用正则表达式同时匹配所有这些:

carList = carList.replace(/<\/?(b|center)>/g,"");

g匹配字符串末尾的标志告诉 Javascript 替换所有匹配项,而不仅仅是第一个匹配项。

于 2013-10-24T20:16:41.563 回答