这是我的响应字符串
var resp = "atoken ##Wed Oct 02 03:24:09 PDT 2013 AUTHTOKEN=1a26625dfcc94fb07eacd4a77c7595ee RESULT=TRUE";
我想按AUTHTOKEN
.
这是我的响应字符串
var resp = "atoken ##Wed Oct 02 03:24:09 PDT 2013 AUTHTOKEN=1a26625dfcc94fb07eacd4a77c7595ee RESULT=TRUE";
我想按AUTHTOKEN
.
使用正则表达式
resp.match(/.* (AUTHTOKEN=(.*)) .*/);
var authToken= RegExp.$2;
不过我的比赛有点矫枉过正
编辑JS 中正则表达式的解释
上面的正则表达式使用组(由括号标识)。当对匹配项执行正则表达式时,RegExp 类会保留上次执行的组。第 1 组、第 2 组等
在上述情况下,表达式将产生以下组
第 1 组:AUTHTOKEN=1a26625dfcc94fb07eacd4a77c7595ee 第 2 组:1a26625dfcc94fb07eacd4a77c7595ee
假设,我可以使用这个表达式
/.* AUTHTOKEN=(.*) .*/
这会将执行的匹配放在 RegExp.$1
本文将为您提供比我在此处提供的更多关于 JavaScript 和正则表达式的信息。
这个不使用正则表达式,它使用Array.every方法。
var resp = "atoken # #Wed Oct 02 03:24:09 PDT 2013 AUTHTOKEN=1a26625dfcc94fb07eacd4a77c7595ee RESULT=TRUE", token;
resp.split(" ").every(function(currentValue) {
var pair = currentValue.split("=");
if (pair.length === 2) {
if (pair[0] === "AUTHTOKEN") {
token = pair[1];
return false;
}
}
return true;
});
console.log(token);
输出
1a26625dfcc94fb07eacd4a77c7595ee
编辑:
对于这种情况,在我的机器上,RegEx 解决方案表现良好。http://jsperf.com/search-in-key-value-pairs