문자열 찾기
- 특정 문자열에서 필요한 위치에 있는 문자(열)을 구한다.
- 특정 위치부터 잘라낼 수도 있다.
- 특정 문자를 다른 문자로 치환할 수 있다.
- 0번째부터 시작
[보기]
let string = "ABCDEFGHIJKLMNOPQRSTUVWXDYZ"
console.lot(string.length);
1. 특정 문자의 인덱스번호 찾기
console.log("D 위치: " + string.indexOf("D"));
출력 : D 위치 : 3
console.log("D 위치: " + string.lastIndexOf("D"));
출력 : D 위치 : 24
2. 특정번호로 문자 찾기
console.log("3번쨰: " + string.charAt(3));
출력 : 3번째 : D
해설 :해당 문자열의 3(인덱스번호) 위치에 있는 문자는 "D"
3-1. X번째부터 끝까지
console.log("3~:" + string.slice(3));
console.log("3~:" + string.substring(3));
console.log("3~:" + string.substr(3));
출력 공통 : DEFGHIJKLMNOPQRSTUVWXDYZ
3-2. X번째부터 X번째까지
console.log("3~:" + string.slice(3,5));
출력 : DE
해설 : 3번째부터 5 미만 번째
* slice 는 배열도 자를 수 있음
let arr = [1,2,3,4,5]
console.log(arr.slice(2,4)
출력 : 3,4
해설 : 배열.slice(behin, end) 일 시, end 의 값은 잘라낼 배열에 포함되지 않는다.
console.log("3~:" + string.substring(3,5));
출력 : DE
해설 : 3번째부터 5 미만 번째
console.log("3~:" + string.substr(3,5));
출력 : DEFGH
해설 : 3번째부터 5개
4. 특정 문자를 기준으로 문자열 자르기
console.log(string.split("D"));
출력: 0: "ABC"
1: "EFGHIJKLMNOPQRSTUVWX"
2: "YZ"
해설 : ABC "D" EFGHIJKLMNOPQRSTUVWX "D" YZ
"D" 를 기준으로 문자열을 자른 후에 배열 방식으로 저장한다.
따라서 해당 배열의 length 는 3
console.log(string.split("D")[0]);
출력 : 0: "ABC"
console.log(string.split("D")[1]);
출력 : 1: "EFGHIJKLMNOPQRSTUVWX"
console.log(string.split("D")[2]);
출력 : 2: "YZ"
let tmp = string.split("D");
console.log(tmp);
출력 : ['ABC', 'EFGHIJKLMNOPQRSTUVWX', 'YZ']
5. 문자열 바꾸기(치환) replace
console.log(string);
출력 : ABCDEFGHIJKLMNOPQRSTUVWXDYZ
consloe.log(string.replace("D","가나다"));
출력 : ABC가나다EFGHIJKLMNOPQRSTUVWXDYZ
해설 : 처음 나오는(?) "D" 를 "가나다" 로 치환한다.
consloe.log(string.replaceAll("D","가나다"));
출력 : ABC가나다EFGHIJKLMNOPQRSTUVWX가나다YZ
해설 : 모든 "D" 를 "가나다" 로 치환한다.
6. 전체 문자열에서 특정문자(열) (있는 지 없는 지만) 찾기
- match - ("전체문자열").match("찾으려는 문자열")
let sp = ["android","iphone","ipad"];
let nu = navigator.userAgent;
document.write(nu)
출력 :
document.write(nu.toLocaleLowerCase())
출력 :
해설 : toLocaleLowerCase - 소문자로 전환
for(let i=0; i<sp.length; i++) {
console.log(navigator.userAgent.toLocaleLowerCase().match(sp[i]))
if(navigator.userAgent.toLocaleLowerCase().match(sp[i])) {
console.log(i + ":"+ sp[i])
location.replace("https://m.naver.com")
}
}
해설 : sp 라는 배열의 수 미만까지 i 를 1씩 더해가며 반복해라. i는 0 이므로 3번 (0,1,2) 반복할 것
조건 : 배열[(sp) i 번째 방에 있는 데이터가 ' nu ' (navigator.userAgent) 안에 있는 지 없는 지 찾을 것
출력 : null (없음)
console.log("여기: " + string.match("DE"))
출력 : 여기 DE
해설 : string 이라는 문자열 : ABC "DE" FGHIJKLMNOPQRSTUVWXDYZ 안에 "DE" 가 있음