키 = 값 쌍으로 구성된 URL 인코딩 문자열을 &
또는로 구분하여 구문 분석하려고합니다 &
.
다음은 첫 번째 항목과 일치하며 키와 값을 별도의 결과 요소로 분리합니다.
var result = mystring.match(/(?:&|&)?([^=]+)=([^&]+)/)
문자열 '1111342 = Adam % 20Franco & 348572 = Bob % 20Jones'에 대한 결과는 다음과 같습니다.
['1111342', 'Adam%20Franco']
전역 플래그 'g'를 사용하면 모든 항목이 일치하지만 분리 된 키와 값이 아니라 완전히 일치하는 하위 문자열 만 반환합니다.
var result = mystring.match(/(?:&|&)?([^=]+)=([^&]+)/g)
문자열 '1111342 = Adam % 20Franco & 348572 = Bob % 20Jones'에 대한 결과는 다음과 같습니다.
['1111342=Adam%20Franco', '&348572=Bob%20Jones']
문자열을 분할 &
하고 각 키 / 값 쌍을 개별적으로 분리 할 수 는 있지만 /(?:&|&)?([^=]+)=([^&]+)/
PHP의 preg_match_all()
기능 과 유사한 패턴의 여러 발생을 일치시키기 위해 JavaScript의 정규 표현식 지원을 사용하는 방법이 있습니까?
하위 일치 항목을 다음과 같이 구분하여 결과를 얻는 방법을 찾고 있습니다.
[['1111342', '348572'], ['Adam%20Franco', 'Bob%20Jones']]
또는
[['1111342', 'Adam%20Franco'], ['348572', 'Bob%20Jones']]
replace
여기에 사용하지 않는 것이 조금 이상합니다 .var data = {}; mystring.replace(/(?:&|&)?([^=]+)=([^&]+)/g, function(a,b,c,d) { data[c] = d; });
끝난. JavaScript에서 "matchAll"은 문자열 대신 대체 처리기 함수로 "바꾸기"입니다.