ここに私の応答文字列があります
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の正規表現のEDIT説明
上記の正規表現は、グループ (括弧で識別) を利用しています。一致に対して正規表現が実行されると、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