正则表达式从URL字符串获取价格范围数字

时间:2019-04-24 06:18:44

标签: jquery regex

我只想从价格范围URL中获取数字,而不必在正则表达式路径中使用“介于”或“与”。

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

我需要18和4353

Regex here

3 个答案:

答案 0 :(得分:1)

您可以使用此正则表达式从group1和group2中获取数字,

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

在这里,\bprice\bprice完全匹配,而\D*与零个或多个非数字字符匹配,然后(\d+)捕获了group1中的一个或多个数字,然后再次捕获\D*允许匹配零个或多个非数字字符,最后(\d+)捕获组2中的第二个数字

Regex Demo

答案 1 :(得分:0)

正则表达式-/between[-](\d+)-and-(\d+)/

只需将价格同时捕获到组中,您就可以将它们分为组1和组2。

正则表达式说明here

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);

答案 2 :(得分:0)

我会走另一条路(根本不需要正则表达式):

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] );