如何使用正则表达式取值?

时间:2019-05-15 17:37:24

标签: javascript regex

我有这样一个字符串“ Categ = All&Search = Jucs&Kin = LUU”。如何从此行[All,Jucs,LUU]中获取值数组。

这里是一个示例

let x = /(\b\w+)$|(\b\w+)\b&/g;
let y = "Categories=All&Search=Filus";
console.log(y.match(x));

但我不希望字符&。

3 个答案:

答案 0 :(得分:2)

由于它看起来像一个URL查询字符串,因此您可以将其视为一个字符串并解析数据,而无需使用正则表达式。

let query = "Categ=All&Search=Jucs&Kin=LUU",
    parser = new URLSearchParams(query),
    values = [];

parser.forEach(function(v, k){
    values.push(v);
});

console.log(values);

文档:https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams

注意:如果您对此很在意,那么这可能无法在IE中使用。

答案 1 :(得分:0)

在所有匹配项中循环并仅使用第一组,而忽略=

let x = /=([^&]+)/g;
let y = "Categories=All&Search=Filus";
let match;
while (match = x.exec(y)) {
  console.log(match[1]);
}

答案 2 :(得分:0)

要获得预期的结果,请使用以下选项,将拆分和带索引的过滤器用于分隔键和值
1.使用 split([^ A-Za-z0-9])根据任意特殊字符(字母和数字除外)拆分字符串
2.使用过滤器和索引获取键和值的数组的偶数或奇数元素

myValue()

codepen-https://codepen.io/nagasai/pen/yWMYwz?editors=1010