2014-08-27 2 views
0

javascript에서 regex를 사용하여 아래 샘플 문자열의 전화 번호와 전화 번호 만 일치시킬 수 있습니까? 필자가 아래에 쓰는 방법은 "PHONE = 9878906756"과 일치하지만 "9878906756"과 일치해야합니다. 이것은 상대적으로 간단해야한다고 생각하지만, 행운과 함께 "PHONE ="과 같은 문자를 무효화하려고했습니다. 자체 그룹에서 전화 번호를 얻을 수는 있지만 javascript var에 할당 할 때 도움이되지 않습니다.자바 스크립트에서 regex와 다른 두 문자열 사이의 문자열을 일치

REGEX :

/PHONE=([^,]*)/g 

DATA :

3 = {STATE = SSN = STREET2 = STREET1 = PHONE = 9,878,906,756, 가운데 이름 = FIRSTNAME = 덱스터 을 PostalCode =, 생년월일 (DateOfBirth) = 19,650,802, 성별 = 0, CITY = LASTNAME = 모건

답변

1

방법 당신에게 ' 그것이 옳은 일을 재 방금 아니라 전체 경기의 값보다 캡처 그룹의 값을 얻을 수있다 : 당신이 다시 match에서 얻을 배열에서

var result = str.match(/PHONE=([^,]*)/); // Or result = /PHONE=([^,]*)/.exec(str); 
if (result) { 
    console.log(result[1]); // "9878906756" 
} 

을 첫 번째 항목은 전체 일치, 각 캡처 그룹에 대한 추가 항목이 있습니다.

g 플래그가 필요하지 않습니다.

+1

감사 T.J.을 시도, 좋은 작품! 나는 배열/그룹에서 두 번째 값을 얻기 위해 [1]을 사용하는 것에 대해 몰랐다. – mirthNewb

+0

@mirthNewb : 걱정하지 마세요, 기꺼이 도와 줬습니다. :-) –

+0

@mirthNewb : 질문에 * 귀하의 질문에 * 답이있는 경우, SO가 작동하는 방식으로, 옆에있는 체크 표시를 클릭하여 대답을 "수락"합니다. 그러나 그것이 정말로 한 경우에만. 세부 정보 : http://stackoverflow.com/help/someone-answers –

0

dataAfterRegex.substring(6)을 사용하여 처음 6 자 (즉, PHONE= 부분)를 빼내십시오.

0

var str = "3={STATE=, SSN=, STREET2=, STREET1=, PHONE=9878906756, MIDDLENAME=, FIRSTNAME=Dexter, POSTALCODE=, DATEOFBIRTH=19650802, GENDER=0, CITY=, LASTNAME=Morgan"; 

var ph = str.match(/PHONE\=\d+/)[0].slice(-10); 

console.log(ph); 
관련 문제