가정하자 나는했습니다 URL을 같은 :추출 필드 스칼라-JS
https://example.com/myproject/index-dev.html?_ijt=hsdlgh8h5g8hh489sajoej&a=102&b=a%20m&c=45&d=all&e=all
또는 같은 로컬 호스트에 웹 페이지가 될 수 있습니다
localhost:63342/my project/index-dev.html?_ijt=hsdlgh8h5g8hh489sajoej&a=102&b=a%20m&c=45&d=all&e=all
내가 추출했습니다 쿼리 필드 (후 나타나는 '?') 2 차원 배열에서 해당 URL에서 다음과 같이
이_ijt | hsdlgh8h5g8hh489sajoej
a | 102
b | a m
c | 45
d | all
e | all
'B'필드의 점에 유의 마십시오, 내가 '% 20'을 대체 한 위스콘신 공간. _ijt, a, b, c, d, e 등과 같은 필드는 번호와 이름이 다를 수 있습니다. 예를 들어 'a'는 '도시'일 수 있습니다. 지금까지 정규 표현식을 사용하여 '?'뒤에 부분을 추출했습니다. split ("&") 메서드를 사용하여 문자열을 여러 문자열로 분할합니다.
_ijt=hsdlgh8h5g8hh489sajoej
a=102
b=a%20m
c=45
d=all
e=all
그러나이 작업을 수행하는 올바른 방법이 될 것 같지 않습니다 - 코드
val url=localhost:63342/my project/index-dev.html?_ijt=hsdlgh8h5g8hh489sajoej&a=102&b=a%20m&c=45&d=all&e=all
val pattern="""(http|htpps)([A-Za-z0-9\:\/\%\-\.]*)\?""".r
val temp_url=pattern.replaceFirstIn(url,"")
val fields=temp_url.split("&")
println(fields.foreach(println))
출력이다. 어떤 도움이 필요합니까?
그것은, 내가 = #의 clinic' 다음은'엔진을 보여줄 것이다'바람직하지 않은 모든 #의 clinic'을 추가 '는 %의 20m'의 문제를 해결하지만, URL의 끝에 같아요. 또한'fields.foreach (println)'을 사용하여 필드를 인쇄해야합니다. 하지만 각 필드를 별도의 변수에 저장하려고합니다. 이것을 어떻게 할 수 있습니까? – Ishan
'java.net.URI'를 사용하면 이와 같은 URL을 신뢰할 수있게 파싱 할 수 있습니다. Scala.js가 지원합니다 ('java.net.URL'는 없습니다). – sjrd