메뉴 건너뛰기

조회 수 2374 추천 수 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 이미지 마우스 드래그로 스크롤을 움직이는 소스 2014.03.17 9362
66 이미지나 태그정렬이 안맞을때 absmiddle 2014.03.01 5238
65 이미지에 마우스 올렸을때 확대 이미지 나오게 하기 (onmouseover 2014.03.01 6923
64 이미지클릭시 옆에 큰이미지나오기 2014.03.17 5518
63 이벤트 - 페이지 로드 후 이벤트 처리하기 ( window.onload ) file 2015.06.19 10871
62 이전, 위로 이동 2016.12.23 5740
61 이클립스 실행할때 자신이 원하는 JDK 지정하는 방법 file 2016.09.11 5439
60 입력된 글씨수 제어 file 2014.03.01 6700
59 입력된 폼의 내용 똑같이 복사 file 2014.03.01 6892
58 자바 스크립트 confirm()함수에서 (확인,취소) -> (예,아니오) file 2014.03.01 10214
57 자바스크립트 API 문서 2015.06.19 9087
56 자바스크립트 urlencode(), urldecode(), rawurlencode(), rawurldecode() 2018.10.27 1913
55 자바스크립트 개체 복사 2014.02.27 6573
54 자바스크립트 모음 2016.12.22 5778
53 자바스크립트 및 CSS를 이용한 숫자만 입력받기 2016.12.22 6321
52 자바스크립트 배열 중복값 다루기 2018.10.27 3898
51 자바스크립트 변수,함수,객체의 표현 2016.12.22 5369
50 자바스크립트 소수점 자리수 계산 2014.03.01 6897
49 자바스크립트 실행 시간 측정 2016.12.22 8930
48 자바스크립트 아이디 기억하기 기능 구현 (쿠키저장) file 2015.06.19 10924
Board Pagination Prev 1 ... 4 5 6 7 8 9 10 11 12 13 Next
/ 13

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved