
String 객체는 자바스크립트에서
문자열을 다루기 위한 객체로 문자열을 다룰 때 유용한 프로퍼티와 함수를 제공한다
문자열 길이를 반환하는 함수
let txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
let sln = txt.length; //26
문자열 안에 특정 문자열이 존재하는지 찾고, 있다면 찾고자 하는 문자열이 시작되는 index를 반환하는 함수이다. 문자열을 발견하지 못하면 -1를 반환
let str="Please locate where 'locate' occurs!";
let pos=str.indexOf("locate"); //7
문자열 안에 특정 문자열이 존재하는지를 찾는 것은 indexOf() 함수와 동일하다. 다만 lastIndexOf()는 찾고자하는 문자열이 둘 이상 발견되면 제일 마지막에 발견된 문자열의 index를 반환하는 함수이다
let str="Please locate where 'locate' occurs!";
let pos=str.lastIndexOf("locate"); //21
indexOf() 함수와 lastIndexOf() 함수 모두 첫 번째 파라미터에는 찾고자 하는 문자열, 두 번째 파라미터에는 문자열을 찾기 시작할 위치 index를 줄 수 있다.
let str="Please locate where 'locate' occurs!";
let pos=str.indexOf("locate", 15); //21
slice() 함수는 파라미터로 시작 위치와 종료 위치를 주면, 문자열에서 해당 부분은 잘라내서 반환하는 함수이다
let str="Apple, Banana, Kiwi";
let res=str.slice(7,13); //Banana
두 번째 파라미터 종료 인덱스 번호를 생략하면, 시작 위치에서 문자열의 마지막 위치까지 잘라내서 반환한다
let str="Apple, Banana, Kiwi";
let res=str.slice(7); //Banana, Kiwi
첫 번째 파라미터인 시작 위치 인덱스를 음수로 주면, 문자열의 끝에서부터 거꾸로 읽게된다
let str="Apple, Banana, Kiwi";
let res=str.slice(-12); //Banana, Kiwi
substring() 함수는 slice() 함수와 동일한 기능을 한다. 단, 파라미터로 음수를 허용하지 않는다는 차이가 있다
let str="Apple, Banana, Kiwi";
let res=str.substring(7, 13); //Banana
substr() 함수 역시 slice() 함수와 매우 유사하다. 단, 두 번째 파라미터는 종료 인덱스가 아니라 첫 번째 파라미터인 시작위치에서 잘라낼 문자의 길이이다.
let str="Apple, Banana, Kiwi";
let res=str.substr(7, 6); //Banana
두 번째 파라미터를 생략하면 시작 인덱스 위치에서 문자열의 마지막까지 반환한다
let str="Apple, Banana, Kiwi";
let res=str.substr(7); //Banana, Kiwi
첫 번째 파라미터인 시작 위치 인덱스를 음수로 주면, 문자열의 끝에서부터 거꾸로 읽게된다
let str="Apple, Banana, Kiwi";
let res=str.substr(-12); //Banana, Kiwi
replace() 함수는 문자열 내의 특정 문자열을 지정한 문자열로 바꾸는 함수이다. 이때 바꾸려는 문자열이 하나 이상 있더라도 처음 발견된 문자열만 바꾸게 된다
let str="Please visit Seoul and Seoul!";
let n=str.replace("Seoul, "Jeju"); //Please visit Jeju and Seoul!
대소문자를 구분한다
let str="Please visit Seoul and Seoul!";
let n=str.replace("SEOUL, "Jeju"); //Please visit Seoul and Seoul!
대소문자 구분없이 사용하려면 자바스크립트 정규식을 사용해야 한다. 여기서 SEOUL은 찾고자하는 문자열이고, i는 insensitive의 약자로 대소문자를 구분하지 않겠다는 뜻
let str="Please visit Seoul and Seoul!";
let n=str.replace("/SEOUL/i, "Jeju"); //Please visit Jeju and Seoul!
처음 발견된 문자열뿐만 아니라 일치하는 모든 문자열을 바꿀 수 있다. 여기서 g는 global의 약자로 일치하는 모든 문자열을 찾겠다는 뜻
let str="Please visit Seoul and Seoul!";
let n=str.replace("/Seoul/g, "Jeju"); //Please visit Jeju and Jeju!
toUpperCase() 함수는 문자열을 모두 대문자로 변경한다
let text1="Hello World!";
let text2=text1.toUpperCase(); //HELLO WORLD!
toLowerCase() 함수는 문자열을 모두 소문자로 변경한다
let text1="Hello World!";
let text2=text1.toLowerCase(); //hello world!
concat() 함수는 2개 이상의 문자열을 하나의 문자열로 합치는 함수이다
let text1="Hello";
let text2="World";
let text3=text1.concat(" ",text2); //Hello World
let text4="Hello"+" "+"World!"; //Hello World!
let text5="Hello".concat(" ", "World!"); //Hello World!
trim() 함수는 문자열의 앞, 뒤 공백을 모두 제거하는 함수이다
let str=" Hello World! ";
console.log(str.trim()); //Hello World!
padStart() 함수는 문자열 앞에 지정된 문자를 지정된 길이만큼 추가하는 함수이다
첫 번째 파라미터는 문자열의 총 길이이고, 두 번째 파라미터는 추가할 문자이다
let str="5";
str=str.padStart(4,0); //0005
padEnd() 함수는 문자열 뒤에 지정된 문자를 지정된 길이만큼 추가하는 함수이다
첫 번째 파라미터는 문자열의 총 길이이고, 두 번째 파라미터는 추가할 문자이다
let str="5";
str=str.padEnd(4,0); //5000
charAt() 함수는 문자열에서 특정 인덱스에 해당하는 문자 하나를 반환하는 함수이다
let str="HELLO WORLD";
str.charAt(0); //H
charCodeAt() 함수는 문자열에서 특정 인덱스에 해당하는 문자 하나의 유니코드 값을 반환하는 함수이다
let str="HELLO WORLD";
str.charCodeAt(0); //72
split() 함수는 문자열 내의 특정 구분자를 기준으로 문자열을 분리하여 배열로 반환하는 함수이다
let birthday="1997-06-12";
let arr2=birthday.split("-"); //["1997","06","02"]
startsWith() 함수는 문자열의 시작이 파라미터로 전달된 문자열로 시작되는지를 확인하는 함수이다
let url="http://www.naver.com";
if(url.startsWith("http://")||url.startsWith("https://"){
//올바른 형식의 웹사이트 url
}else{
//잘못된 형식의 웹사이트 url
}
endsWith() 함수는 문자열의 끝이 파라미터로 전달된 문자열로 종료되는지를 확인하는 함수이다
let file="abc.pdf";
if(file.endsWith(".pdf")){
//pdf 파일
}else{
//다른 형식의 파일
}