메뉴 건너뛰기

조회 수 2373 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

어떤 훌륭한 분이 한글을 분리해주는 라이브러리를 맨들어줘서 그분의 라이브러리를 활용한 초성 검색 예제를 만들어 보았다.


라이브러리 : https://github.com/e-/Hangul.js/




<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script type="text/javascript" src="./hangul.min.js"></script>
</head>
<body>
    검색어 : <input type="text" id="txt" />
    <ul id="find"></ul>
 
    <script>
        // 검색할 배열
        var arr = [
            { name: "홍길동" },
            { name: "한국" },
            { name: "호가든" },
            { name: "프로그램목록" },
            { name: "프로세스" },
            { name: "공통" },
            { name: "아키텍쳐" },
            { name: "앙칼지다" },
            { name: "학사행정" },
            { name: "일반부속" },
            { name: "학습 및 취업" },
            { name: "테이블정의서" },
            { name: "테이저건" },
            { name: "정의서" },
            { name: "현행화" },
            { name: "졸업" },
            { name: "바인더" },
            { name: "대학본부" },
            { name: "에디터" },
            { name: "Visual Studio Code" },
            { name: "Edit Plus" },
            { name: "소나무" },
            { name: "민들레" },
            { name: "나뭇가지" },
            { name: "갑천" },
            { name: "한강" },
            { name: "금강" },
            { name: "도안동" },
            { name: "월평동" },
            { name: "대전광역시" },
            { name: "서울" },
            { name: "경기도" },
            { name: "성남시" },
            { name: "모니터" },
            { name: "이클립스" },
            { name: "탐색기" },
            { name: "엑셀" },
            { name: "크롬" },
            { name: "파이어폭스" },
            { name: "텔레그램" },
            { name: "팟플레이어" },
            { name: "마이크로소프트" },
            { name: "애플" },
            { name: "LG" },
            { name: "삼성" },
            { name: "오라클" },
            { name: "MySQL" },
            { name: "치약" },
            { name: "프린터" },
            { name: "레이저 프린터" },
            { name: "아반떼" },
            { name: "베라크루즈" },
            { name: "자동차공학과" },
            { name: "기아자동차" },
            { name: "현대자동차" },
            { name: "에어컨" }
        ];
 
        // object 에 초성필드 추가 {name:"홍길동", diassembled:"ㅎㄱㄷ"}
        arr.forEach(function (item) {
            var dis = Hangul.disassemble(item.name, true);
            var cho = dis.reduce(function (prev, elem) {
                elem = elem[0] ? elem[0] : elem;
                return prev + elem;
            }, "");
            item.diassembled = cho;
        });
 
        console.log(arr);
 
 
        var ul = document.getElementById('find');
        document.getElementById('txt').addEventListener('keyup', function () {
            while (ul.firstChild) {
                ul.removeChild(ul.firstChild);
            }
 
            var search = this.value;
            var search1 = Hangul.disassemble(search).join("");  // ㄺ=>ㄹㄱ
 
 
            arr
            // 문자열 검색 || 초성검색
            .filter(function (item) {
                return item.name.includes(search) || item.diassembled.includes(search1);
            })
            // 검색결과 ul 아래에 li 로 추가
            .forEach(function (item) {
                var li = document.createElement('li');
                li.innerHTML = item.name;
 
                ul.appendChild(li);
            });
        });
    </script>
</body>
</html>


List of Articles
번호 제목 날짜 조회 수
67 체크박스(CheckBox) 전체 선택, 전체 해제 checked file 2018.07.04 2912
66 테이블에서 해당 열의 인덱스 값 얻는 방법 2018.08.29 2789
65 스마트 에디터 (네이버 에디터) 에디터 내에서 이미지 크기 줄이기.(리사이징) file 2018.07.04 2715
» Javascript 로 초성검색하기 2019.01.10 2373
63 날짜 계산하기 (년/월/일 더하기, 빼기) 2021.08.20 2356
62 jqgrid 이용한 그리드 활용하기 file 2021.03.25 2325
61 유용한 스크립트 모음 2018.07.24 2293
60 Javascript - 화면 캡처 후 서버에 저장하기(html2canvas 사용법, 주의사항) file 2021.03.09 2167
59 텍스트박스 입력제한(숫자,영문,한글,특수기호) 2019.01.16 1991
58 자바스크립트 urlencode(), urldecode(), rawurlencode(), rawurldecode() 2018.10.27 1913
57 반복문 사용할때 태그 식별하기 data-item 2018.07.04 1849
56 문자열 안에 쌍따옴표, 홑따옴표 표시하는 3가지 방법 file 2021.08.20 1784
55 팝업창 차단 "허용 메시지" 2018.09.28 1738
54 jQuery 엘리먼트 선택 2018.10.27 1732
53 시간 계산하기 (시/분/초/ 더하기, 빼기) 2021.08.20 1707
52 key pressing 누르거나 클릭중인 이벤트 예제 2018.08.29 1619
51 cross site scripting을 막기위한...javascript 2018.07.24 1596
50 특정 부분 인쇄 자바스크립트 2019.01.16 1585
49 날짜 계산 (Date) 마지막 날짜(말일)/윤달/윤년 처리하기 2021.08.20 1538
48 엔터키 / enter key submit form 2018.09.28 1528
Board Pagination Prev 1 ... 4 5 6 7 8 9 10 11 12 13 Next
/ 13

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved