Regex для получения номеров ценовых диапазонов из строки URL - PullRequest
0 голосов
/ 24 апреля 2019

Я хочу получить только цифры из URL-адреса ценового диапазона, не используя 'Между' или 'и' в регулярном выражении.

baseurl/phones/price/between-18-and-4353/page-1/c

мне нужно 18 и 4353

Regex здесь

Ответы [ 3 ]

1 голос
/ 24 апреля 2019

Вы можете использовать это регулярное выражение и получить свои цифры из group1 и group2,

\bprice\b\D*(\d+)\D*(\d+)

Здесь \bprice\b соответствует price как целое совпадение, а \D* соответствует нулю или более нецифровых символовзатем (\d+) захватывает одну или несколько цифр в группе 1, а затем снова \D* позволяет сопоставить ноль или более нецифровых символов и, наконец, (\d+) захватывает второе число в группе 2

Regex Demo

0 голосов
/ 24 апреля 2019

Я бы пошел другим путем (вообще не нужно регулярное выражение):

var range = 'baseurl/phones/price/between-18-and-4353/page-1/c';
range = range.substr( range.indexOf('price/between-') ).split('-and-');
range[0] = parseInt( range[0].substr( 1 + range[0].indexOf('-') ) );
range[1] = parseInt( range[1] );

console.log( range[0], range[1] );
0 голосов
/ 24 апреля 2019

Regex - /between[-](\d+)-and-(\d+)/

Просто объедините обе цены в группы, и вы получите их в Группе 1 и Группе 2.

Regex объяснение здесь

var str = "baseurl/phones/price/between-18-and-4353/page-1/c";
var pattern = /between[-](\d+)-and-(\d+)/;
var match = str.match(pattern);
var lowPrice = Number(match[1]);
var highPrice = Number(match[2]);
console.log(lowPrice, highPrice);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...