javascript - 图像 javascript 的 url 源

标签 javascript jquery regex

所以我读了this question我想使用它的答案,但是因为会覆盖我输入的所有内容,例如如果我添加一个红色 div 它就会消失。我怎样才能让这个 javascript 与我的其他 html 一起工作......

var newHTML = replaceWithImgLinks($(document.body).text());
$(document.body).html(newHTML);
function replaceWithImgLinks(txt) {
var linkRegex = /([-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?(?:jpg|jpeg|gif|png))/gi;
var replacement = '<a href="$1" target="_blank"><img class="sml" src="$1" /></a><br />'
return txt.replace(linkRegex, replacement);
}

(我很愚蠢,我的 javascript 知识也不是最好的)如果你能解释为什么它不起作用,我会非常满意。:)

这是一个fiddle这样你也可以看到我的问题:

所以我想做的是将我的 div 中的所有 imgs src 更改为图像“而不是我认为的整个 body ”

最佳答案

如果不需要 URL 参数,可以在正则表达式末尾使用 \S*

/([-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?(?:jpg|jpeg|gif|png))\S*/gi

此外,我还更改了您在 JQuery 中调用和替换的类:

function replaceWithImgLinks(txt) {
    var linkRegex = /([-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?(?:jpg|jpeg|gif|png))\S*/gi;
    return txt.replace(linkRegex, '<a href="$1" target="_blank"><img class="sml" src="$1" /></a><br />');
}

var newHTML = replaceWithImgLinks($('.chatMessages').html());
$('.chatMessages').html(newHTML);
.chatMessages{
  height:200px;
  width:200px;
  background-color:red;
}
.sml{
  height:100px;
  width:100px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div class = "chatMessages">
/image/qgNyF.png?s=328&g=1
</div>

关于javascript - 图像 javascript 的 url 源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42659169/

相关文章:

javascript - 从服务器加载数据时,Angular 服务监听

javascript - 使用 css 为 <img> 旋转背景图像

javascript - 使用 css 和 js 重新设计登录表单后卡在登录页面上

javascript - 使用正则表达式从 javascript 函数返回语句中查找键/值

javascript - ExtJS4内存泄漏

javascript - Polymaps svg map 容器默认为 300px x 150px,否则无法设置

javascript - 尝试创建 Backbone.js View 子类时出错

javascript - 将文本和选项移动到输入 html 和 jquery 中

javascript - 正则表达式从字符串返回所有图像标签

javascript - 从字符串创建有效 ID 的函数。正则表达式