javascript - 在获取背景图像 url 时,如何让 JQuery 替换字符串的非 URL 部分

标签 javascript jquery regex

我有这段代码,它提取背景图像的元素,但是它也提取了代码的“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"),}

关于javascript - 在获取背景图像 url 时,如何让 JQuery 替换字符串的非 URL 部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60322118/

相关文章:

python - 难以理解正则表达式方法 findall

javascript - 测试 :id routes

javascript - 在 <script src="plugin.js> 中调用插件是一个好习惯吗?

javascript - 如何解决导航中的 jQuery 淡入淡出动画冲突?

regex - 全字匹配(Visual Studio 风格)

java - 将字符串拆分为仅 3 个字符。 java

javascript - 我不明白为什么一些随机颜色与图像重叠?

javascript - Conceal Div 内的社交媒体按钮

javascript - 显示最接近 li 和 img 的 JQuery 过滤器

jquery - Selenium IDE 如果 DIV 包含文本,请单击按钮