#jquery #regex
#jquery #регулярное выражение
Вопрос:
Я хочу получать только цифры из URL-адреса ценового диапазона без использования «между» или «и» в regex pathern.
baseurl/phones/price/between-18-and-4353/page-1/c
мне нужно 18 и 4353
Комментарии:
1. regex101.com/r/uholKw/6 попробуйте это, вы получите свои номера в группах 1 и Group2, используя $ 1 и $ 2
Ответ №1:
Вы можете использовать это регулярное выражение и получить свои цифры из group1 и group2,
bpricebD*(d )D*(d )
Здесь bpriceb
совпадает price
как полное совпадение и D*
соответствует нулю или более нецифровых символов, затем (d )
фиксирует одну или несколько цифр в group1, а затем снова D*
разрешает сопоставление нуля или более нецифровых символов и, наконец, (d )
фиксирует второе число в group2
Ответ №2:
Регулярное выражение — /between[-](d )-and-(d )/
Просто разделите обе цены на группы, и вы получите их в Group1 и Group2.
Объяснение регулярного выражения здесь
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);
Комментарии:
1. я не хочу использовать «между» и «и». потому что это множественный язык, между ними будут изменения. но в любом случае для вашего пациента. 😀
2.
baseurl/phones/price
останется ли этот бит неизменным?
Ответ №3:
Я бы пошел другим путем (вообще не нужно регулярное выражение):
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] );