将JSON编码的feed value's image src协议http:替换为https:

Replace JSON encoded feed value's image src protocol http: with https:

本文关键字:协议 src image http 替换 https 编码 JSON feed value      更新时间:2023-09-26

我有一个关于https协议的网站,通过ajax JSONP通过google加载feed API消费wordpress rss feed,然后通过返回的json对象迭代注入内容

问题是内容节点有我想包含的html,比如海报插入的图像:
  "Title":"post title",
  "Content":"<p><img src='http://theothersite.com'/> this is an example post</p>"

当我使用each()遍历json时,内容html被追加,并向浏览器抛出不安全的内容警告,因为image src是http协议

 $.each(json.responseData.feed.entries, function(arrayID, News) {
 for(var i = 0; i < News.categories.length; i++)
 {
  html = '<li class="post news"><h3><a target="_blank" href="'+News.link+'">'+News.title+'</a></h3>';
  // HERES WHERE ATTENTION NEEDED
  html +='<div class="excerpt">'+News.content+'</div></li><hr>';
 $("#newsList ul").append(html);

我无法弄清楚如何解析节点内容的src值,并将任何src替换为具有https作为协议的新src,同时保留所有其他字符串数据

我已经尝试过匹配,它可以很好地将src转换为变量,但它没有占用字符串的其余部分,所以当我替换它时,它没有保留

内容
  var iMatches = News.content.match(/src='"(.+?)'"/igm);  //alert(iMatches);
  if (iMatches) { 
    News.content.replace(/src='"http:(.+?)'"/igm, /src='"https:(.+?)'"/igm);}

我也试过替换为replace('http:', 'https:'),但这也不起作用

一如既往,感谢您的帮助

String.replace方法不改变原始字符串,而是返回一个新字符串。考虑到这一点,您需要使用:

News.content = News.content.replace(...);
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/replace