반응형
이번에 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를 붙여 만듭니다.
반응형
'개념공부 > FrontEnd' 카테고리의 다른 글
Javascript 객체 및 객체의 종류 (0) | 2021.12.13 |
---|---|
CSS3 선택자 기본 (0) | 2021.12.13 |
HTML5 개요 및 기본 태그 (0) | 2021.12.10 |
[Vue.js] Vue.js란 무엇인가? (0) | 2021.11.04 |
[JavaScript] `(백틱) 을 이용한 Template literals ${} 데이터 추출 (2) | 2021.11.03 |
댓글