我有以下 ajax 函数,它从 JSON 响应返回三个图像(PORTRAIT、SQUARE 和 LANDSCAPE):
$.ajax({
url: url,
method: 'GET',
headers: {
"Authorization": bearerToken
},
}).then(function (response) {
var obj = response;
$("#imageid").css("border-color", "#ccc");
$(".search-results").empty();
for (var property in obj.entity.entries) {
if (obj.entity.entries.hasOwnProperty(property)) {
var imageURI = obj.entity.entries[property].uri + "&" + imageCacheBust;
$(".search-results").append($("<li><a href='" + imageURI + "' target='_blank'><div class='thumbnail'><img width='30' height='30' src='" + imageURI + "' target='_blank'/></img><div class='caption'><p>" + obj.entity.entries[property].orientation + "</p></div></a></li>"));
}
}
}).fail(function (data) {
$(".search-results").empty();
$(".search-results").append("<p class='alert alert-danger'>Invalid ID</p>");
$("#imageid").css("border-color", "red");
});
LANDSCAPE 和 SQUARE 图像以如下格式的 URI 返回:
http://xx.domain.com/api/v2/img/55527b6060b27c50d1def7b6?location=LANDSCAPE&1
http://xx.domain.com/api/v2/img/55527b6060b27c50d1def7b6?location=SQUARE&1
肖像图像返回为:
http://xx.domain.com/api/v2/img/5550fdfe60b27c50d1def72d&43
我正在使用正则表达式来 chop 肖像末尾的 LAST d
之后的所有内容,因为它没有使用缓存(与其他人一样)。但是,这无法正常工作,并且图像未显示。
最佳答案
您是否尝试过split
?如果我正确地阅读了您的问题,您应该能够替换它:
var regex = /[^d\/]*$/;
var imageURI = regex.exec(obj.entity.entries[property].uri);
。 。 。有了这个 。 。 .
var imageURI = obj.entity.entries[property].uri.split("&")[0];
这会将 uri
值拆分为包含“http://xx.domain.com/api/v2/img/5550fdfe60b27c50d1def72d ”和“43”的数组,然后您只需使用 0
索引引用第一部分(我相信这就是您正在寻找的)。
关于javascript - 将正则表达式应用于 javascript 中的 uri 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30223433/