Санта клауза нету, но Гринч пришел в топик и ответил, спасибо XD Интересно то, что каждый из канвасов еще пару раз рисуется. Возможно тест на производительность какой то... На нойз тест попроще был бы, как раз нашел недавно себе:
function testKnownPixelValue(size, log){ "use strict"; const canvas = document.createElement("canvas"); canvas.height = size; canvas.width = size; const context = canvas.getContext("2d"); const imageData = new ImageData(canvas.width, canvas.height); const pixelValues = imageData.data; for (let i = 0; i < imageData.data.length; i += 1){ if (i % 4 !== 3){ pixelValues[i] = Math.floor(256 * Math.random()); } else { pixelValues[i] = 255; } } context.putImageData(imageData, 0, 0); const p = context.getImageData(0, 0, canvas.width, canvas.height).data; for (let i = 0; i < p.length; i += 1){ if (p[i] !== pixelValues[i]){ log("wrong value", p[i], "at", i, "expected", pixelValues[i]); return true; } } return false; } testKnownPixelValue(10, console.log)Регулярки в js
-
Есть регурярка: https://community.(?:akamai|cloudflare).steamstatic.com/economy/image/-([\s\S]+)
Есть строки: https://community.akamai.steamstatic.com/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpot621FAR17P7NdTRH-t26q4SZlvD7PYTQgXtu4MBwnPD--Y3nj1H68hE-NW_2JNPAdVNtYV_Q_wO6le7u1pS-7pWfzCFnvCEq7SyOnBzi0wYMMLK7E03aCQ/360fx360f
https://community.cloudflare.steamstatic.com/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpot621FAR17P7NdTRH-t26q4SZlvD7PYTQgXtu5Mx2gv3--Y3nj1H6qBFvMWHyIo7Adw9raF6GrlK9lLi-jJO7tJ_JzyNh63F3sX_emUPkgQYMMLL2MDRAbQ/360fx360f
Нужно получить последнюю часть ссылки через js. Написал регулярку, для bas работает, для js нет. Помогите, пожалуйста, решить проблему -
@MP said in Регулярки в js:
Есть регурярка: https://community.(?:akamai|cloudflare).steamstatic.com/economy/image/-([\s\S]+)
Есть строки: https://community.akamai.steamstatic.com/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpot621FAR17P7NdTRH-t26q4SZlvD7PYTQgXtu4MBwnPD--Y3nj1H68hE-NW_2JNPAdVNtYV_Q_wO6le7u1pS-7pWfzCFnvCEq7SyOnBzi0wYMMLK7E03aCQ/360fx360f
https://community.cloudflare.steamstatic.com/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpot621FAR17P7NdTRH-t26q4SZlvD7PYTQgXtu5Mx2gv3--Y3nj1H6qBFvMWHyIo7Adw9raF6GrlK9lLi-jJO7tJ_JzyNh63F3sX_emUPkgQYMMLL2MDRAbQ/360fx360f
Нужно получить последнюю часть ссылки через js. Написал регулярку, для bas работает, для js нет. Помогите, пожалуйста, решить проблемуВы бы лучше предоставили код в котором пытаетесь использовать регулярку
-
@burmash said in Регулярки в js:
@MP said in Регулярки в js:
(?<=\/economy\/image\/-).*Конструктор зенки?
:D -
@burmash спасибо, разобрался. Сделал так:
elem = 'https://community.cloudflare.steamstatic.com/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpopL-zJAt21uH3cDx96tC3mYWYqPv9NLPF2DoIuMEoieuW99T0iVDn-hdtY2ylcY6WegA4ZQnXrAW3yLu905W5v5jXiSw0Apt2w_0/96fx96f' reg = /(?<=https:\/\/community\.(?:akamai|cloudflare).steamstatic.com\/economy\/image\/-).*/ res = elem.match(reg) console.log(res) -
@MP said in Регулярки в js:
@burmash спасибо, разобрался. Сделал так:
elem = 'https://community.cloudflare.steamstatic.com/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpopL-zJAt21uH3cDx96tC3mYWYqPv9NLPF2DoIuMEoieuW99T0iVDn-hdtY2ylcY6WegA4ZQnXrAW3yLu905W5v5jXiSw0Apt2w_0/96fx96f' reg = /(?<=https:\/\/community\.(?:akamai|cloudflare).steamstatic.com\/economy\/image\/-).*/ res = elem.match(reg) console.log(res)Вы же вкурсе, что метод match возвращает массив? Да и к чему такая громоздкая регулярка?
var elem = 'https://community.cloudflare.steamstatic.com/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXH5ApeO4YmlhxYQknCRvCo04DEVlxkKgpopL-zJAt21uH3cDx96tC3mYWYqPv9NLPF2DoIuMEoieuW99T0iVDn-hdtY2ylcY6WegA4ZQnXrAW3yLu905W5v5jXiSw0Apt2w_0/96fx96f' var res = elem.match(/economy\/image\/-(.*)/)[1] console.log(res) -
@MP said in Регулярки в js:
@Fox про match заметил поэтому использовал ?<= :)
Как связано назад смотрящее утверждение с типом возвращаемых данных?
А длинная регулярку будет ещё удлиняться в дальнейшем для парсинга со страницы
Не очень хорошее решение. В разы продуктивнее будет получать элемент ссылки через CSS, а нужный участок через метод split()
-
@Fox мне нужно по ссылке на фото получать id предмета на странице:
<img id="listing_4962415246853042650_image" src="https://community.cloudflare.steamstatic.com/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZ...Так что подобные регулярки это всё что приходит мне в голову:
(\d+)_image"\ src="https://community.(?:akamai|cloudflare).steamstatic.com/economy/image/-[[IMG]]" -
@MP said in Регулярки в js:
@Fox мне нужно по ссылке на фото получать id предмета на странице:
<img id="listing_4962415246853042650_image" src="https://community.cloudflare.steamstatic.com/economy/image/-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZ...У вас множество таких изображений на странице и вам нужно для каждого получить ссылку? Вы бы приложили html страницу на которой работаете и результат который хотите с неё получить
Так что подобные регулярки это всё что приходит мне в голову:
(\d+)_image"\ src="https://community.(?:akamai|cloudflare).steamstatic.com/economy/image/-[[IMG]]"Вы же хотите решить задачу на js, для чего тогда используете переменную BAS?
Я люблю регулярки, но они сильнее остальных методов нагружают систему. А если документ, к которому применяете регулярку большой, то регулярка может и повесить страницу -
M Moderator moved this topic from Off topic on