메뉴 건너뛰기

조회 수 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>


  1. Alert, Confirm을 모달 팝업으로 만들기

    Date2021.03.09 Views3885
    Read More
  2. 랜덤 배너 노출 스크립트

    Date2019.04.29 Views11031
    Read More
  3. 풍선도움말

    Date2019.01.16 Views1167
    Read More
  4. span - 동적으로 글자 바꾸기, 보이기 안보이기

    Date2019.01.16 Views1446
    Read More
  5. 텍스트박스 입력제한(숫자,영문,한글,특수기호)

    Date2019.01.16 Views1991
    Read More
  6. 금액에 점찍고 한글 표시하기

    Date2019.01.16 Views1271
    Read More
  7. 유효한 링크인지 확인하는 JAVASCRIPT

    Date2019.01.16 Views111895
    Read More
  8. 특정 부분 인쇄 자바스크립트

    Date2019.01.16 Views1581
    Read More
  9. 엑셀처럼 td 사이즈 조절하기

    Date2019.01.16 Views3385
    Read More
  10. 체크박스 전체 선택 및 해제, 반드시 1개 이상 선택 강제

    Date2019.01.16 Views1307
    Read More
  11. 한글 또는 영문만이 존재하는지 체크

    Date2019.01.16 Views1163
    Read More
  12. 기간 설정용 달력 팁앤노하우

    Date2019.01.16 Views1137
    Read More
  13. 한글 짜르기

    Date2019.01.16 Views1179
    Read More
  14. 두 날짜 사이 토일요일 개수 구하기

    Date2019.01.16 Views1241
    Read More
  15. div태그를 이용한 클릭시 레이어 띄우기

    Date2019.01.16 Views1328
    Read More
  16. 배열과 Array객체

    Date2019.01.16 Views1051
    Read More
  17. 에러처리

    Date2019.01.16 Views1066
    Read More
  18. 랜덤(Random) / 난수 만들기

    Date2019.01.16 Views1179
    Read More
  19. input 태그에서 name과 id의 차이

    Date2019.01.16 Views1089
    Read More
  20. Javascript 로 초성검색하기

    Date2019.01.10 Views2373
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 13 Next
/ 13

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

© k2s0o1d4e0s2i1g5n. All Rights Reserved