Как я могу получить JQuery, чтобы заменить не-URL-части строки при извлечении URL фоновых изображений - PullRequest
2 голосов
/ 20 февраля 2020

У меня есть этот код, который извлекает элемент для фонового изображения, однако он также извлекает части кода «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

Ответы [ 3 ]

2 голосов
/ 20 февраля 2020

Обратите внимание, что некоторые 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"),}
1 голос
/ 20 февраля 2020

Заменить свойство изображения на

 "image": jQuery('#block-content').css('background-image').replace('url(','').replace(')','').replace(/\"/gi, ""),
0 голосов
/ 20 февраля 2020

надеюсь, это поможет вам.

var tmp = 'https://example.com/recipes/url(https://example.com/sites/image.jpg?itok=jfzYQHZx)';
tmp = tmp.substring(tmp.indexOf("(h") + 1);
tmp = tmp.substring(0, tmp.length - 1);
console.log(tmp);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...