1

Тема: Витягнути частину адреси через регулярні вирази

Маю таку частину адреси

gateway/?redirect=[URLENCODE('https://site.co/?payment_plan_id=PAYMENT_PLAN')]

Як через regexp витягнути потрібну частину, а саме PAYMENT_PLAN ?

Був собі цебер, та переполуцебрився на полуцебренята
Неймовірний блог про мандри http://bosano.ga

2

Re: Витягнути частину адреси через регулярні вирази

Regex look ahead, look before

Мій блог про ОС сімейства *nix - http://nixtravelling.blogspot.com/

3

Re: Витягнути частину адреси через регулярні вирази

наприклад так

let s = "gateway/?redirect=[URLENCODE('https://site.co/?payment_plan_id=PAYMENT_PLAN')]";
let res = s.match(/_plan_id=(.*)\'\)/);
console.log(res[1]);

https://jsfiddle.net/wwtaubvo/

All you want is a dingle,
What you envy's a schwang,
A thing through which you can tinkle,
Or play with, or simply let hang...
Подякували: 0xDADA11C7, karmeljuk2

4

Re: Витягнути частину адреси через регулярні вирази

karmeljuk, ви не новачок на цьому форумі, а задаєте питання як новачок. - Де ви показали, що якось намагались вирішити самостійно це, прямо скажемо, елементарне завдання?

А взагалі, можна використовувати https://regex101.com/, там ліворуч необхідно вказати, що ви хочете використовувати регулярні вирази саме для JavaScript.

У вашому випадку - у верхній інпут вставляєте, наприклад

/_plan_id=(.*)\'\)/

у нижній

gateway/?redirect=[URLENCODE('https://site.co/?payment_plan_id=PAYMENT_PLAN')]

Праворуч є пояснення.

Подякували: karmeljuk1

5

Re: Витягнути частину адреси через регулярні вирази

ktretyak - регулярні вирази це те, що складно піддається моєму розумінню, ми з ними в повній дисгармонії ))
Ті варіанти, котрі я пробував https://regexr.com/3gvqe . В даному випадку мені було не зрозуміло, як обрізати останні 3 символи

Був собі цебер, та переполуцебрився на полуцебренята
Неймовірний блог про мандри http://bosano.ga

6

Re: Витягнути частину адреси через регулярні вирази

Забув, що JS іще не вміє робити "look behind", поки може бути хіба що ось так:

payment_plan_id.*(?=')

де

(?=')

- це "look ahead", тобто пошук до одинарної лапки

Мій блог про ОС сімейства *nix - http://nixtravelling.blogspot.com/
Подякували: karmeljuk1