我有一个看起来像这样的URL, “ website / properties / sales / from-300000 / up-to-800000 / bed = 1”;
我想从此URL中获取两个单词并将其存储为变量;
我要匹配的单词是
“ 从300000 / ”和“ 至800000 / ”
到目前为止,我所获得的只是文字和URL末尾之间的文本。如何使用正则表达式进行匹配?
var url = "website/properties/sales/from-300000/up-to-800000";
var from = url.match(/(?=from).*$/g);
var to = url.match(/(?=up-to).*$/g);
console.log(from); // logs from-300000/up-to-800000/beds=1
console.log(to); // logs up-to-800000/beds=1
答案 0 :(得分:2)
您可以使用单个正则表达式来实现:匹配并捕获 from
,然后延迟重复字符,直到获得正斜杠,然后捕获up-to
直到使用相同的方法将其切成斜线:
var url = "website/properties/sales/from-300000/up-to-800000/bed=1";
const [, from, upto] = url.match(/(from.+?\/)(up-to.+?\/)/);
console.log(from)
console.log(upto);