簡體   English   中英

javascript正則表達式在匹配模式后獲取字符串

[英]javascript regular expression get string after matched pattern

我有一個看起來像這樣的字符串:

var str = "fname=peter lname=pan age=12"

我需要的是獲取一個字符串數組,該字符串中的每個字符串都緊隨fname或lname或age之后,位於str變量之外。 結果是這樣的: ['peter', 'pan', '12']

您能否建議我一個有效的解決方案來完成該任務(我的任務很長,並且相信我您永遠都不想看到這一點)?

謝謝!

嘗試:

var arr = [];
str.replace(/=(\w+)/g, function( a,b ) {
  arr.push( b );
});

console.log( arr ); //=> ["peter", "pan", "12"]

這是使用類似正則表達式的另一種方法:

var arr = str.match(/=\w+/g).map(function( m ){
  return m.replace('=','');
});

您不需要regex

var str = "fname=peter lname=pan age=12";

str = str.split(' ');
for(var i = 0, length = str.length; i < length; i++) {
    str[i] = str[i].split('=')[1];
}
console.log(str); // ['peter', 'pan', '12']

演示

您還可以考慮對鍵進行硬編碼,以避免循環:

var s   = "fname=peter lname=pan age=12"
var pat = /fname=(\w+)\s*lname=(\w+)\s*age=(\w+)/

r.match(pat)
//returns ["fname=peter lname=pan age=12", "peter", "pan", "12"]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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