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