如何替换js中的特定字符串

时间:2017-07-05 12:22:13

标签: javascript html angularjs node.js

我有一个包含以下数据的变量

间皮瘤发病率预计将于2014年至2021年间在澳大利亚发生,2011年至2015年在英国,2015年至2024年在意大利,2010年在美国,2015年在丹麦,2017年荷兰,2027年在日本。

我想替换

<img src="test" />

<amp-img src="test"></amp-img>

但是我在这里得到了100条记录的数据,作为我的例子

 <img src="test" /> 

但我不确定我的img标签包含什么。所以我用替换img

replace('<img',<amp-img>);

但是如何替换结束标签,即

  ('/>','></amp-img>'). 

任何人都可以建议我帮忙。谢谢。

4 个答案:

答案 0 :(得分:1)

您可以大致使用此方法;

<img src="invis.gif" />

http://api.jquery.com/replacewith/

答案 1 :(得分:0)

关于这个......

  

...

<img src="test" /> 
     

但我不确定我的img标签包含什么。所以我用替换img

replace('<img',<amp-img>);
     

...

JavaScript String Replace方法有两个参数,第一个是正则表达式或精确字符串,第二个是替换字符串或函数。如果你只需要做一个特定的更改,那么使用字符串作为两个参数是可行的方法,并且可以链接多个“替换者”以进行更复杂的操作。

所以这......

var sampleString = '<img src="test" />';

..可以像这样'替换'......

var newString = sampleString.replace('<img','<amp-img')
                            .replace(' />','</amp-img>'); 

newString变量现在包含您对sampleString变量内容所做的更改。

希望有所帮助:)

答案 2 :(得分:0)

这将用您想要的内容替换最后一个结束标记:

sampleString.replace(sampleString.slice(sampleString.lastIndexOf(' />')), '></amp-img>');

答案 3 :(得分:0)

如果您拥有的字符串实际上包含:<img src="test" />,那么您可以使用:

string = string.replace(/<img\s+(.*?)\s*\/>/g, '<amp-img $1></amp-img>');

甚至:

string = string.replace(/<img\s+([^>]*?)\s*\/>/g, '<amp-img $1></amp-img>');

不要按照此处的建议单独替换结束标记:

string.replace(' />','</amp-img>')

因为那会破坏你不想要替换的其他标记的所有其他标记(在这种情况下,如果你在斜杠之前没有空格也不会有效 - 这是完全有效的,应该预期)。

如果您拥有的是DOM对象,那么您应该单独替换DOM节点,而不是将标记解析为字符串。