javascript - 获取背景图像 url 时如何让 JQuery 替换字符串的非 URL 部分
问题描述
我有这段代码可以提取背景图像的元素,但是它也会拉入代码的“url”部分。我只需要实际的图片地址
我尝试使用替换功能,但是当我检查输出时它对字符串没有任何作用。
var jsonData =
{ "image": jQuery('#block-content').css('background-image').replace(/^url\(['"](.+)['"]\)/, '$1'),
var script = document.createElement('script');
script.type = 'application/ld+json';
script.text = JSON.stringify(jsonData);
jQuery("head").append(script);
元素内的图像是 //imageaddress.jpg 所以它将它提取为
https://example.com/recipes/url(https://example.com/sites/image.jpg?itok=jfzYQHZx)
我该如何解决这个问题,这样它才能给我
https://example.com/sites/image.jpg?itok=jfzYQHZx
解决方案
请注意,某些 URL 并不总是在引号中:
url(https://example.com/sites/image.jpg?itok=jfzYQHZx)
然后添加['"]?
=>?
检测零或 1 个字符
var str = "url('https://example.com/sites/image.jpg?itok=jfzYQHZx')"; // example string
var str2 = "url(https://example.com/sites/image.jpg?itok=jfzYQHZx)"; // without quotes
str = str.replace(/^url\(["']?(.+?)["']?\)/,"$1"); // replace with first group (.+?)
str2 = str2.replace(/^url\(["']?(.+?)["']?\)/,"$1");
console.log(str);
console.log(str2);
var jsonData = { "image": jQuery('#block-content').css('background-image').replace(/^url\(["']?(.+?)["']?\)/,"$1"),}
推荐阅读
- debugging - 如何调试 App Script 中的 OnEdit 代码?
- ionic-framework - 带有 .p8 键的 iOS 推送通知在 Firebase 中不起作用
- c++ - 为什么在将 libcurl 与 CURLOPT_PROXY 一起使用时会出现 CURLE_NOT_BUILT_IN?
- javascript - 单击元素后Javascript不会隐藏文本
- c# - C#解析泛型类型参数
- kotlin - 可以为 SQLDelight 生成的类覆盖 toString 吗?
- amazon-web-services - AWS DynamoDB 扫描过滤器表达式返回空
- lilypond - LilyPond:添加新页面
- javascript - 为什么 pop() 方法在 map 方法中使用时停止工作?
- javascript - HTML & JS 错误未显示(复选框错误显示在复选框中)