프론트엔드/JavaScript
[JavaScript] 문자열에 대해서 알아보자
병걸
2023. 5. 2. 11:21
JavaScript언어에서는 값을 찾거나 위치값을 알아내는 등 여러가자 문자열을 수정하는 방법들이 있습니다.
아래 문자열을 활용한 코드가 있습니다.
// 문자열을 저장할 변수
var str = "Ahi~ javascript!";
// var str = new String("Ahi~ javascript!! ");
var str2 = "jQuery!!! ";
document.write(`원본 : ${str} <br>`);
// 문자열의 5번째 문자 찾기 0~
document.write("5번째 문자 :" + str.charAt(5) + "<br>");
// 4번째부터 4글자를 추출
document.write("4번째부터 4글자:" + str.substr(4, 4) + "<br>");
// 4번째부터 7번째까지 추출
document.write("4번째부터 7번째:" + str.substring(4, 8) + "<br>");
// j가 들어있는 위치값
document.write("j가 있는 위치값을 앞에서 :" + str.indexOf("j") + "<br>");
// z가 있는 위치값
document.write("없는 z의 위치값 :" + str.indexOf("z") + "<br>");
// i의 위치값 뒤에서
document.write("i가 있는 위치 뒤에서 찾기 : " + str.lastIndexOf("i") + "<br>");
// match 찾는 문자열이 있으면 문자를 반환하고, 없으면 null을 반환
document.write("s가 있는지 찾기" + str.match("s") + "<br>");
document.write("z가 있는지 찾기" + str.match("z") + "<br>");
// search indexOf
document.write("s" + str.search("s") + "<br>");
document.write("z" + str.search("z") + "<br>");
// 문자열 변경하기 - 원본은 변경되지 않는다. (새로운변수안에 넣어야 저장가능)
document.write("javascript를 jQuery로 변경 : " + str.replace("javascript", "jQuery") + "<br>");
document.write(str + "<br>");
// 문자열 대문자로
document.write("대문자로 : " + str.toUpperCase() + "<br>");
// 문자열 소문자로
document.write("소문자로 : " + str.toLocaleLowerCase() + "<br>");
// 문자열 합치기
document.write("두문자열 합치기 : " + str.concat(str2) + "<br>");
// 문자열 코드값 65~ A
document.write("65 코드값 :" + str.charCodeAt(0) + "<br>");
// 코드 값을 이용한 문자 찾기
document.write("65 : " + String.fromCharCode(65) + "<br>");
// 공백을 기준으로 문자들 분리하기
var sp = str.split(" ");
document.write(sp[0] + "<br>");
document.write(sp[1] + "<br>");
// 반복하기
var star = "★";
document.write(star.repeat(5) + "<br>");
// 공백제거하기
document.write(str.trim() + "<br>");
// 문자열의 길이 알아내기
document.write(str.length + "<br>");
// 끝나는지 endsWith() true
document.write(str.endsWith("t!"));
결과값은 다음과 같습니다.
원본 : Ahi~ javascript!
5번째 문자 :j
4번째부터 4글자: jav
4번째부터 7번째: jav
j가 있는 위치값을 앞에서 :5
없는 z의 위치값 :-1
i가 있는 위치 뒤에서 찾기 : 19
s가 있는지 찾기s
z가 있는지 찾기null
s16
z-1
javascript를 jQuery로 변경 : Ahi~ javascript!
Ahi~ java script!
대문자로 : AHI~ JAVA SCRIPT!
소문자로 : ahi~ javascript!
두문자열 합치기 : Ahi~ javascript!jQuery!!!
65 코드값 :65
65 : A
Ahi~
java
★★★★★
Ahi~ java script!
23
true
하나씩 살펴보면
- chartAt(n) : 문자열의 n번째 문자 출력
- subStr(n, m) : 문자열의 n번째부터 m번째까지 문자 출력
- substring(n, m) : n번째부터 m번째까지 문자 출력
- indexOf( "n" ) : 문자 "n" 이 들어있는 위치 값 출력 (앞에서부터 검색)
- lastIndexOf( "n" ) : 문자 "n" 이 들어있는 위치 값 출력 (뒤에서부터 검색)
- match( "n" ) : 문자열에서 문자 "n" 이 있으면 n 값 추출 없다면 null 값 출력
- replace( "n" , "m" ) : 문자열 n을 문자열 m 으로 변경하여 출력
- toUpperCase() : 문자열을 대문자로 변경하여 출력
- toLocaleLowerCase() : 문자열을 소문자로 변경하여 출력
- n.concat(m) : 변수 n과 m 합쳐서 출력
- charCodeAt(n) : n번째 위치에 있는 문자 아스키코드 값으로 변경하여 출력
- split(" ") : 공백을 기준으로 문자 분리하여 출력
- m.repeat(n) : m변수 n번 반복하여 출력
- trim( " " ) : 공백제거하기
- length : 문자열의 길이 출력
- endsWith( "n" ) : 문자열 "n" 으로 끝나면 true 아니라면 false 출력
문자열은 이와 같이 여러가지 방법으로 출력할 수 있다.
위 문법들을 사용하여 아래와 같이 전화번호의 뒷자리 4자리를 *으로 변경할 수도 있습니다.
// 이름 입력받기
var userName = prompt("당신의 이름을 영문자로 입력하세요", ""); // Lee 입력
// 전화번호 입력받기
var userTel = prompt("전화번호를 - 없이 입력하세요", ""); // 01012345678 입력
// 이름을 대문자로 출력하기
document.write(userName.toUpperCase() + "<br>"); // LEE 출력
// 전화번호
var result = userTel.substr(0, userTel.length - 4) + "****";
document.write("당신의 전화번호는 :" + result); // 0101234**** 출력
위 코드에서 userTel.length - 4 는 입력한 전화번호의 문자 길이인 11에 4를 빼 전화번호의 0위치부터 7까지의 문자를 ****으로 변경하여 출력하게 된다.