簡體   English   中英

如何使用正則表達式取值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM