Изолировать часть строки - PullRequest
2 голосов
/ 05 марта 2019

Мне нужно выделить часть «_Back-80x80.png» следующего URL и заменить ее с помощью Javascript. Я понимаю, как заменить его, просто нужно помочь изолировать часть SKU с помощью регулярных выражений. Единственной константой будет то, что она идет после wp-content/uploads/ и перед последним / в строке.

/wp-content/uploads/SKU_Back-80x80.png

Я захватил все после wp-content/uploads/, просто не могу понять, как игнорировать все до SKU.

/\/wp-content\/uploads\/.*/g

Ответы [ 2 ]

1 голос
/ 05 марта 2019

, если вы хотите извлечь что-нибудь между / и _, например SKU, вот метод:

const regex = /\/\w*\_/g

const text = "/wp-content/uploads/SKU_Back-80x80.png"

console.log(text.match(regex)[0].substring(1, (text.match(regex)[0].length - 1)))
1 голос
/ 05 марта 2019

Вы хотите обновить всю деталь после /wp-content/uploads/ до следующей / или конца строки.

Используйте

s = s.replace(/(\/wp-content\/uploads\/)[^\/]*/g, "$1" + new_value);

См. Демоверсию regex

Детали

  • (\/wp-content\/uploads\/) - группа 1, буквальная подстрока /wp-content/uploads/ (она упоминается с использованием $1 обратной ссылки замены из шаблона замены)
  • [^\/]* - 0 или более символов, отличных от /

Если new_value может содержать $, замените его на new_value.replace(/\$/g, '$$$$') в коде выше (это будет корректно экранировать символы доллара).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...