[JS] 자바스크립트 글자 미리보기 (String 메서드, getElementBy)

2022. 9. 8. 16:54·Front-End/HTML, CSS, JS

자바스크립트를 이용해서 설정에 따라

적용된 글자를 미리 보는 간단한 프로그램이다.

주로 getElementByID와 String 메서드를 사용한다.


HTML

<body>
        <div>
            <input type="text" id="onText">
            <button onclick="previewStr()">미리 보기</button>
            <br>
            색상:
            <select id="color">
                <option value = "red">빨강</option>
                <option value = "blue">파랑</option>
                <option value = "green">녹색</option>
            </select>
            <br>
            크기:
            <select id="size">
                <option value = "1">1</option>
                <option value = "2">2</option>
                <option value = "3">3</option>
                <option value = "4">4</option>
                <option value = "5">5</option>
                <option value = "6">6</option>
                <option value = "7">7</option>
            </select>
            <br>
            <table>
                <tr>
                    <td><input name="fontOption" type="checkbox" value="strike">취소선</td>
                    <td><input name="fontOption" type="checkbox" value="big">크게</td>
                    <td><input name="fontOption" type="checkbox" value="small">작게</td>
                    <td><input name="fontOption" type="checkbox" value="bold">두껍게</td>
                    <td><input name="fontOption" type="checkbox" value="italics">기울임</td>
                </tr>
                <tr>
                    <td><input name="fontOption" type="checkbox" value="sub">위첨자</td>
                    <td><input name="fontOption" type="checkbox" value="sup">아래첨자</td>
                    <td><input name="fontOption" type="checkbox" value="upper">소문자로</td>
                    <td><input name="fontOption" type="checkbox" value="lower">대문자로</td>
                </tr>
            </table>
            <span id="resultStr"></span>
        </div>
    </body>

 

document 객체의 getElementByID(), getElementsByName(), getElementsByTagName()

메서드를 사용할 것이기 때문에 최대한 필터링하기 편하도록 HTML에서 태그들의 Id와 Name을 지정한다.

 


JavaScript 코드

<script language="javascript">
            function previewStr(){
                //입력된 문자 가져옴
                var result = document.getElementById("onText").value;
                
                //글자색 넣기
                var selectedColor = document.getElementById("color").value;
                result = result.fontcolor(selectedColor);

                //글자옵션
                var fontOptions = document.getElementsByName("fontOption");
                var checkedFontOptions = [];
                
                //체크된 것만 array에 추가
                for(var i=0; i<fontOptions.length; i++){
                    if(fontOptions[i].checked){
                        checkedFontOptions.push(fontOptions[i].value);
                    }
                }
                
                //폰트옵션 적용
                for(var i=0; i<checkedFontOptions.length; i++){
                    if(checkedFontOptions[i] == "strike"){
                        result = result.strike();
                    }
                    else if(checkedFontOptions[i] == "big"){
                        result = result.big();
                    }
                    else if(checkedFontOptions[i] == "small"){
                        result = result.small();
                    }
                    else if(checkedFontOptions[i] == "bold"){
                        result = result.bold();
                    }
                    else if(checkedFontOptions[i] == "italics"){
                        result = result.italics();
                    }
                    else if(checkedFontOptions[i] == "sub"){
                        result = result.sub();
                    }
                    else if(checkedFontOptions[i] == "sup"){
                        result = result.sup();
                    }
                    else if(checkedFontOptions[i] == "upper"){
                        result = result.toLowerCase();
                    }
                    else if(checkedFontOptions[i] == "lower"){
                        result = result.toUpperCase();
                    }
                }
                
                //글자크기
                var selectedSize = document.getElementById("size").value;
                result = result.fontsize(selectedSize);

                document.getElementById("resultStr").innerHTML = result;
            }
        </script>

 

* 전체코드 더보기

더보기
<html>
    <head>
        <title>글자 미리보기</title>
        <script language="javascript">
            function previewStr(){
                //입력된 문자 가져옴
                var result = document.getElementById("onText").value;
                
                //글자색 넣기
                var selectedColor = document.getElementById("color").value;
                result = result.fontcolor(selectedColor);

                //글자옵션
                var fontOptions = document.getElementsByName("fontOption");
                var checkedFontOptions = [];
                
                //체크된 것만 array에 추가
                for(var i=0; i<fontOptions.length; i++){
                    if(fontOptions[i].checked){
                        checkedFontOptions.push(fontOptions[i].value);
                    }
                }
                
                //폰트옵션 적용
                for(var i=0; i<checkedFontOptions.length; i++){
                    if(checkedFontOptions[i] == "strike"){
                        result = result.strike();
                    }
                    else if(checkedFontOptions[i] == "big"){
                        result = result.big();
                    }
                    else if(checkedFontOptions[i] == "small"){
                        result = result.small();
                    }
                    else if(checkedFontOptions[i] == "bold"){
                        result = result.bold();
                    }
                    else if(checkedFontOptions[i] == "italics"){
                        result = result.italics();
                    }
                    else if(checkedFontOptions[i] == "sub"){
                        result = result.sub();
                    }
                    else if(checkedFontOptions[i] == "sup"){
                        result = result.sup();
                    }
                    else if(checkedFontOptions[i] == "upper"){
                        result = result.toLowerCase();
                    }
                    else if(checkedFontOptions[i] == "lower"){
                        result = result.toUpperCase();
                    }
                }
                
                //글자크기
                var selectedSize = document.getElementById("size").value;
                result = result.fontsize(selectedSize);

                document.getElementById("resultStr").innerHTML = result;
            }
        </script>
    </head>

    <body>
        <div>
            <input type="text" id="onText">
            <button onclick="previewStr()">미리 보기</button>
            <br>
            색상:
            <select id="color">
                <option value = "red">빨강</option>
                <option value = "blue">파랑</option>
                <option value = "green">녹색</option>
            </select>
            <br>
            크기:
            <select id="size">
                <option value = "1">1</option>
                <option value = "2">2</option>
                <option value = "3">3</option>
                <option value = "4">4</option>
                <option value = "5">5</option>
                <option value = "6">6</option>
                <option value = "7">7</option>
            </select>
            <br>
            <table>
                <tr>
                    <td><input name="fontOption" type="checkbox" value="strike">취소선</td>
                    <td><input name="fontOption" type="checkbox" value="big">크게</td>
                    <td><input name="fontOption" type="checkbox" value="small">작게</td>
                    <td><input name="fontOption" type="checkbox" value="bold">두껍게</td>
                    <td><input name="fontOption" type="checkbox" value="italics">기울임</td>
                </tr>
                <tr>
                    <td><input name="fontOption" type="checkbox" value="sub">위첨자</td>
                    <td><input name="fontOption" type="checkbox" value="sup">아래첨자</td>
                    <td><input name="fontOption" type="checkbox" value="upper">소문자로</td>
                    <td><input name="fontOption" type="checkbox" value="lower">대문자로</td>
                </tr>
            </table>
            <span id="resultStr"></span>
        </div>
    </body>
</html>

String 메서드

https://www.w3schools.com/jsref/jsref_obj_string.asp

 

JavaScript String Reference

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

 


참고 문헌 : w3schools.com

 

'Front-End > HTML, CSS, JS' 카테고리의 다른 글

[CSS] Pretendard 숫자 데이터 고정폭 적용하기  (2) 2025.05.07
[JS] 회원가입 페이지 사용자 입력 유효성 검사 (정규식, 비정규식)  (0) 2022.09.14
[JS] 자바스크립트 공학용 계산기 만들기  (1) 2022.09.13
[HTML] <form>을 사용한 로그인 페이지 구현 (audio 음악재생)  (0) 2022.09.10
'Front-End/HTML, CSS, JS' 카테고리의 다른 글
  • [CSS] Pretendard 숫자 데이터 고정폭 적용하기
  • [JS] 회원가입 페이지 사용자 입력 유효성 검사 (정규식, 비정규식)
  • [JS] 자바스크립트 공학용 계산기 만들기
  • [HTML] <form>을 사용한 로그인 페이지 구현 (audio 음악재생)
현기
현기
  • 현기
    현기의 개발블로그
    현기
  • 전체
    오늘
    어제
    • 분류 전체보기 (124)
      • Front-End (40)
        • Next (6)
        • React (8)
        • React Native (11)
        • Flutter (0)
        • Vue (1)
        • JSP (9)
        • HTML, CSS, JS (5)
      • Back-End (16)
        • Node.js (3)
        • Spring (8)
        • Flask (1)
        • AWS (4)
      • DB (5)
        • Oracle (4)
        • MySQL (1)
      • Python (7)
      • Java (27)
        • 자바 이론 (17)
        • 코딩테스트 연습 & 실습 (10)
      • 자료구조 & 알고리즘 (7)
        • 코딩테스트 (6)
        • 알고리즘 (1)
      • AI (3)
      • 블록체인 (0)
      • 프롬프트 엔지니어링 (0)
      • CS 지식 (5)
      • IT뉴스 (0)
      • 일상 (3)
      • etc (11)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    서블릿
    REST API
    react-native-chart-kit
    JDBC
    React Native Chart
    상속
    큐
    파이썬
    Spring
    리액트 네이티브
    자바
    Python
    node.js
    자바 스프링
    그리디
    next-intl
    자바스크립트
    스택
    react
    쓰레드
    React Native
    포스트맨
    티스토리챌린지
    오라클
    오블완
    IS-A
    Express
    JSP
    DI
    Java
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
현기
[JS] 자바스크립트 글자 미리보기 (String 메서드, getElementBy)
상단으로

티스토리툴바