Регулярки в 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 нет. Помогите, пожалуйста, решить проблемуВы бы лучше предоставили код в котором пытаетесь использовать регулярку
-
@MP said in Регулярки в js:
(?<=\/economy\/image\/-).*
-
@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)
-
@Fox про match заметил поэтому использовал ?<= :)
А длинная регулярку будет ещё удлиняться в дальнейшем для парсинга со страницы
-
@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?
Я люблю регулярки, но они сильнее остальных методов нагружают систему. А если документ, к которому применяете регулярку большой, то регулярка может и повесить страницу
-
@Fox хочу решить в js, потому что так проще прописывать логику программе)
Регулярок стараюсь избегать и минимизировать, но тут не придумал другого метода
-
В итоге получилось всё же в часть кода пристроить split для оптимизации
img = img.split("/economy/image/-")[1]