И снова регулярка
Доброго времени суток!
есть таккая вот штука url = 'user/1'; template = 'user/{id:\d+}'; template = template.replace(/{([A-Za-z]+):([^\}]+)}/g, '(?<id>/\d+)'); //в пхп (?P<\1>\2) template = '^' + template + '$'; arr = url.match(template); console.log(template); console.log(arr); выводит "^user/(?<id>/d+)$" null Где делаю ошибку, Заранее спасибо! Ожидал что будет массив |
Sergey1986,
:-? |
Профессора вы где? ????
|
Sergey1986,
скажи, что сделать то, хочешь? |
Есть шаблон, в которой указываю как выглядит url , после сравниваю с урл и вытаскиваю данные из нее
|
Sergey1986, когда речь идет о регулярках, обычно пишут:
- Имею вот такую строку, хочу из нее получить вот такое. У тебя какая строка? Какой массив ты из нее собрался получить? |
Планирую получить в arr(id)=1
|
Цитата:
Цитата:
|
Цитата:
Но в JS нет круглых скобок. :no: И что есть id? :blink: |
template = 'user/{id:\d+}';
на уровне шаблона указываю какой будет ключ в масиве arr[id] = 1 (условно) Так более понятно? |
Цитата:
Цитата:
|
url = 'user/1'; template = /user\/(\d+)/g; arr = url.match(template); console.log(template); console.log(arr); |
Цитата:
Вот это Цитата:
Так понятно? :) |
Цитата:
url = 'user/1'; template = 'user/{id:\\d+}'; template = template.replace(/{([A-Za-z]+):([^\}]+)}/g, '(?<$1>$2)'); //в пхп (?P<\1>\2) template = RegExp('^' + template + '$'); arr = url.match(template); console.log(template); console.log(arr); |
Но если в самой регулярке для значения id будет закрывающая фигурная скобка, то всё летит к черту.
И да, именованные группы появились в js недавно, это может работать не во всех браузерах. |
vanished
|
vanished
|
vanished
|
Все классно, а как получить то массив?
arr [id] = 1 или если несколько параметров заложено arr [id] = 1 и arr[pid] = 2 |
Спасибо за помощь Alexandroppolus !!!!не увидел кейс с решением
|
Часовой пояс GMT +3, время: 23:10. |