Регулярки в js

Moved Other
  • @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]
    
  • ModeratorM Moderator moved this topic from Off topic on