도로명주소 안내시스템 개발자센터

Tech & Tips 상세보기 | 도로명주소 개발자센터

Tech & Tips

API, DB, 전자지도등 도로명주소를 이용한 기술개발 및 활용팁을 올려주세요

입력받은 검색키워드에서 띄어쓰기가 잘못입력된 경우

9088님의 제안

  • 댓글 : 0
  • 조회수 : 678
  • 추천수 3 +1

2020-02-19

안녕하세요. 
도로명주소 검색 시, 입력받은 검색키워드에서 띄어쓰기가 잘못입력된 경우 보정해주는 javascript공유합니다.
예시) 천중로 15가길1-18  --> 천중로15가길 1-18

//검색 정제 (번지 빼기, 띄어쓰기)
function regExpCheckJuso(strKeyword)
{
	var tempKeyword 〓 strKeyword;
	var charKeyword;
	var tempLength;

	//주소일 경우 글자뒤에 번지 x, 주소와 숫자 사이에 한칸 띄우기
	var reqExp1 〓/([0-9]|번지)$/;
	var reqExp2 〓/번지$/;
	var checkChar 〓/^([0-9]|-|\.|\·)$/;
	var checkEng 〓/^[A-Za-z]+$/;

	if(reqExp1.test(strKeyword))
	{
		// 글자 뒤의 번지 삭제
		tempKeyword 〓 strKeyword.split(reqExp2).join("");

		// 주소와 숫자 사이 한칸 띄우기
		tempLength 〓 tempKeyword.length;

		for(var i〓tempLength-1;i>〓0;i--)
		{
			charKeyword 〓 tempKeyword.charAt(i);

			if(!checkChar.test(charKeyword))
			{
				if(charKeyword !〓 " " && !checkEng.test(charKeyword))
				{
					tempKeyword 〓 insertString(tempKeyword,i+1,' ');
				}
				break;
			}
		}
	}

	var regExp3 〓 /[0-9]*[ ]*(대로|로|길)[ ]+[0-9]+[ ]*([가-힝]|[ ])*[ ]*(로|길)/;
	var regExp4 〓 /[ ]/;
	var k 〓 tempKeyword.match(regExp3) ;

	if (k !〓 null) {
		var tmp 〓 k[0].split(regExp4).join("");
		tempKeyword〓tempKeyword.replace(regExp3, tmp);
	}
	return tempKeyword;
}

function insertString(key,index,string)
{
	if(index >0){
		return key.substring(0,index) + string + key.substring(index,key.length);
	}else{
		return string+key;
	}
}

댓글쓰기

댓글쓰기