所以我读了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/