가 여기 내 응답 문자열문자열에서 키 쌍 동일 값을 분리하는 방법은 무엇입니까?
var에 인공 호흡기입니다 = "# #Wed 10월 2일 태평양 서머 타임 03시 24분 9초 2013 authToken에 = 1a26625dfcc94fb07eacd4a77c7595ee의 결과 = TRUE atoken";
AUTHTOKEN
키로 값을 받고 싶습니다.
가 여기 내 응답 문자열문자열에서 키 쌍 동일 값을 분리하는 방법은 무엇입니까?
var에 인공 호흡기입니다 = "# #Wed 10월 2일 태평양 서머 타임 03시 24분 9초 2013 authToken에 = 1a26625dfcc94fb07eacd4a77c7595ee의 결과 = TRUE atoken";
AUTHTOKEN
키로 값을 받고 싶습니다.
사용 정규식
resp.match(/.* (AUTHTOKEN=(.*)) .*/);
var authToken= RegExp.$2;
내 경기는 JS
정규 표현식에서 정규 표현식의
편집 설명은 위 그룹을 활용하지만 과잉 (괄호로 식별) 조금이다. 정규식이 일치 항목에서 실행되면 RegExp 클래스는 마지막 실행 그룹을 유지합니다. 상기의 경우 발현은 다음 그룹
그룹을 생성 할 것이다 1 족, 기타 등 2 군
1 : authToken에 = 1a26625dfcc94fb07eacd4a77c7595ee 그룹 2 : 1a26625dfcc94fb07eacd4a77c7595ee
꼽은는 I가 사용하고 있었던 표현
정규식에서 실행의 경기를 넣어 것/.* AUTHTOKEN=(.*) .*/
. $ (1)
This article은 JavaScript 및 정규 표현식에 대한 정보보다 훨씬 많은 정보를 제공합니다.
+1 클래스로 RegExp가 $ 2와 같은 속성을 갖는 방법에 대해 설명해 주시겠습니까? – Marwan
나는 자바 스크립트와 함께 일하고 그 비밀을 발견하기를 좋아한다. – Marwan
'. *'은 필요 없다. 후행하는'. *'는'RESULT = true'가 match 배열에 포함되지 않도록 단지 필요합니다. – asafreedman
이 표현식은 정규 표현식을 사용하지 않으며 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
편집 :이 경우를 들어
는 내 컴퓨터에서, 정규식 솔루션을 잘 수행한다. http://jsperf.com/search-in-key-value-pairs
누가 응답을 생성했는지 확인하려면 해당 용도로 'JSON'을 사용하십시오. – vikingmaster
라인에서 분할하고, 공백으로 분할하고, 등호로 분할 한 다음 키 'AUTHTOKEN'로 쌍을 찾습니다. – Bergi