使用正则表达式如何获取URL中两个单词之间的匹配?

时间:2018-08-20 09:57:53

标签: javascript regex

我有一个看起来像这样的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

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