목적 : 지도 API를 이용해서 정보를 보여주고, 또 주소 url에 넘겨주기 위해 사용
먼저, 보여줄 문자열에서 앞의 몇개의 문자를 잘라 필요한 만큼만 출력하는 방법
= substr을 사용한다
substr 사용예시
const str = '주소 : 서울특별시 강남구 삼성동 영동대로 513';
var sl = str.length;
console.log(str.substr(5,sl-5));
// expected output: "서울특별시 강남구 삼성동 영동대로 513"
//str.substr(A,B);
//A: str 문자열 중에서 자를 위치 (배열처럼 0부터 시작)
//B: A에서부터 몇개의 문자를 자를것인지 개수 입력
const str = 'Mozilla';
console.log(str.substring(1, 3));
// expected output: "oz"
console.log(str.substring(2));
// expected output: "zilla"
한글은 2칸인줄 알았는데 한글 공백 특수문자 모두 다 같은듯
encodeURI 사용하는 이유
= URI를 전달 할 때 문제가 없도록 인코딩 하는 용도
보통, 웹을 통해서 데이터를 전송할 때 특정 문자들은 특수한 기능으로 사용한다
예를들어, http://a.com?name=egoing&job=programmer 에서
&job=programmer 중 '&'는 하나의 파라미터가 끝나고 다음 파라미터가 온다는 의미이다.
그런데 다음과 같이 job의 값에 &문자가 포함된다면 시스템은 job의 값을 제대로 인식할수 없게 된다.
http://a.com?name=egoing&job=programmer&blogger
이런 문제를 회피하기 위해서 다음과 같이 치환해준다.
http://a.com?name=egoing&job=programmer%26blogger
그럼 시스템에서는 %26을 &로 해석하여 원래의 의도대로 값을 해석할 수 있게 된다.
이러한 처리를 이스케이핑(escaping)라고 부른다.
encodeURI 사용예시
활용 예시
//주소 url인코딩 네이버 지도 API 응용본
const uri = 'nmap://place?lat='+lat_+'&lng='+long_+'&name='+Addr+'&appname=www.naver.com';
const encoded = encodeURI(uri);
//인코딩 값 테스트용 출력
console.log('주소 url 인코딩 : ' +encoded);
기존에 사용하는 lat_, long_, Addr 변수들을 사용하여 변수 uri에 넣은 다음
encodeURI을 사용하여 인코딩을 해주면 사용할수있다
참고 :
문자열 자르기
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/substr
문자열 url 인코딩
https://opentutorials.org/course/50/189
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/encodeURI