[英]How to take value using regular expressions?
我有這樣的字符串“ 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));
但我不希望角色&。
由於這看起來像一個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中使用。
循環遍歷所有匹配項,並只選擇第一組,忽略=
let x = /=([^&]+)/g; let y = "Categories=All&Search=Filus"; let match; while (match = x.exec(y)) { console.log(match[1]); }
為了獲得預期的結果,請使用下面的選項,即使用帶有索引的split和filter來分隔鍵和值
1.使用split([^ A-Za-z0-9])根據任何特殊字符(字母和數字除外)分割字符串
2.使用過濾器和索引獲取鍵和值的數組的偶數或奇數元素
var str1 = "Categ=All&Search=Jucs&Kin=LUU"; function splitter(str, index){ return str.split(/[^A-Za-z0-9]/).filter((v,i)=>i%2=== index); } console.log(splitter(str1, 0)) //["Categ", "Search", "Kin"] console.log(splitter(str1, 1))//["All", "Jucs", "LUU"]
codepen- https: //codepen.io/nagasai/pen/yWMYwz ? editors = 1010
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.