본문 바로가기
개념공부/FrontEnd

[JavaScript] 숫자,문자가 섞인 문자열에서 숫자만 추출하기

by 29살아저씨 2021. 11. 3.
반응형

이번에 Spring을 이용한 아파트 실거래가 검색 홈페이지를 만들면서 xml데이터를 추출할 일이 있었다.

 

원하는 가격 내 검색기능을 구현하기 위해 데이터에 들어있는 실 거래가와, 사용자가 입력한 최소, 최대값을 비교해서 

Client에게 뿌려주게 하려 했다.

 

하지만 실거래가 데이터가 13,000 , 25,000, 5,000 이런식으로 문자열과 숫자가 섞인 데이터였다.

ParseInt()를 이용하여 실거래가를 int형으로 변환하려고 했으나 ','가 섞여있어서 이상한 데이터가 나왔다.

 

이를 해결하기 위해 JavaScript에서 제공하는 함수인 replace와 정규식을 이용하여 숫자와 문자가 섞인 데이터에서 숫자만 뽑아와서 비교해주는 기능을 작성하였다.

 

숫자가 아닌 문자를 모두 선택하는 정규식인 /[^0-9]/g 를 이용하여 문자를 ""로 바꿔주면 된다.

 

예시)

var regex = /[^0-9]/g;		// 숫자가 아닌 문자열을 선택하는 정규식
var result = items[i].recentPrice.replace(regex, "");  // 문자열에서 숫자만 추출하는 코드
if(parseInt(result) > parseInt(min) && parseInt(result) < parseInt(max))
{	
 	priceSearchData.push(items[i]); // 검색범위 내 있는 데이터 저장
}

먼저 regex에 = /[^0-9]/g를 넣어준다

***

/[^0-9]/g

의 설명을 드리자면

정규식 형식으로 / 사이에

모든 숫자를 매칭하는 [0-9]

부정을 뜻하는 ^ 를 붙여

[^0-9] 를하면 모든 숫자를 제외한 문자만을 매칭하고

발생할 모든 패턴에 대한 전체 검색을 뜻하는 플래그 g를 붙여 만듭니다.

출처 : https://jsikim1.tistory.com/38

반응형

댓글