JavaScript

[JavaScript] #23 - 문자열 함수

yoonddo 2023. 1. 30. 16:35

javascript에서의 문자열 함수 사용법에 대해 알아보자

 

jsp 파일

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>문자열 함수</title>
</head>
<body>

<p>
	1. 문자열 합치기
	<input type="button" value="실행" onclick="strTest1()">
</p>

<p>
	2. 서로 다른 자료형 합치기
	<input type="button" value="실행" onclick="strTest2()">
</p>

<p>
	3. 문자열 비교하기
	<input type="button" value="실행" onclick="strTest3()">
</p>

<p>
	4. 문자열 찾기
	<input type="button" value="실행" onclick="strTest4()">
</p>

<p>
	5. 문자열 추출
	<input type="button" value="실행" onclick="strTest5()">
</p>

<p>
	6. 문자열 자르기
	<input type="button" value="실행" onclick="strTest6()">
</p>

<script type="text/javascript" src="./js/javascript27.js"></script>
</body>
</html>

 

js 파일

function strTest1() {
	var str1 = 'string ';
	var str2 = 'function';
	var str3 = str1 + str2;
	console.log(str3);
	
//	concat() 함수로 문자열에 인수로 지정한 문자열을 합칠 수 있다.
	var newStr = str1.concat('test', 'java', 'script');
	console.log(str1);
	console.log(newStr);
	
//	join() 함수로 문자열에 인수로 지정한 문자열을 사이사에 삽입한다.
	var joinStr = ['java', 'script', 'good'].join(' ');
	console.log(joinStr);
}

function strTest2() {
	var num = 12.34;
	var bool = true;
	var str = '문자열';
	console.log(num + str + bool); //num + str은 문자열이 된다.
//	boolean 타입의 데이터는 숫자와 연산을 할 경우 true는 1로 false는 0으로 취급되서 연산된다.	
	console.log(num + bool + str);
}

function strTest3() {
	var str = prompt('니 이름이 뭐니?', '숫자는 입력하지 마세요');
//	if (!isNaN(Number(str))) {	// 함수로
	if (str.match(/[0-9]/)) {	// 정규식으로
		alert('숫자는 입력하지 말라니까는~~~~~');
	} else if (str == '홍길동') {
		alert(str + '님 어서오세요');
	} else {
		alert(str + '?? 너는 누구냐');
	}
	
//	==, !=   => 데이터만 비교한다. 숫자와 문자를 비교하지 않는다. '1'와 1는 같은 값으로 취급된다.
//	===, !== => 데이터와 데이터의 자료형까지 비교한다. '1'와 1는 다른 값으로 취급된다.
	var num = 10;
	console.log(typeof num);
	var str = '10';
	console.log(typeof str);
	
	if (num == str) {
		console.log('데이터 타입은 비교하지 않고 데이터만 비교해서 같다.');
	} else {
		console.log('데이터 타입은 비교하지 않고 데이터만 비교해서 다르다.');
	}
	
	if (num === str) {
		console.log('데이터 타입은 비교하지 않고 데이터만 비교해서 같다.');
	} else {
		console.log('데이터 타입은 비교하지 않고 데이터만 비교해서 다르다.');
	}
	
	var oldStr = '홍길동';
	var newStr = new String('홍길동');
	
	if (oldStr == newStr) {
		console.log('같다.');
	} else {
		console.log('다르다.');
	}
	
//	new를 사용해서 만든 객체는 내용이 같더라도 '==='를 사용해서 비교하면 다른 값으로 취급된다.
	if (oldStr === newStr) {
		console.log('같다.');
	} else {
		console.log('다르다.');
	}
}

function strTest4() {
//	indexOf() 함수는 문자열의 왼(앞)쪽 부터 인수로 지정된 문자열을 찾아 index를 리턴한다.
//	lastIndexOf() 함수는 문자열의 오른(뒤)쪽 부터 인수로 지정된 문자열을 찾아 index를 리턴한다.
//	indexOf(), lastIndexOf() 모두 인수로 지정한 문자열이 없으면 -1을 리턴한다.
	var name = '홍길동 임꺽정 장길산 일지매 홍길동';
	var str = prompt('검색할 이름을 입력하세요');
	console.log('indexOf() 함수로 검색한 index: ' + name.indexOf(str));
	console.log('lastIndexOf() 함수로 검색한 index: ' + name.lastIndexOf(str));
}

function strTest5() {
	var str = '2021-09-02 (모오오오오오옥) 2021-07-26';
//	substring(a) 함수는 문자열에서 index가 a인 문자부터 끝까지 추출한다.
//	substring(a, b) 함수는 문자열에서 index가 a부터 b - 1번째 문자열을 추출한다.
	console.log(str.substring(11, 14));
	var start = str.indexOf(' ');
	var end = str.lastIndexOf(' ');
	console.log('start: ' + start + ', end: ' + end);
	console.log(str.substring(start + 1, end));
	var sola = str.substring(0, start);
	var lunar = str.substring(end + 1);
	console.log('양력 ' + sola + '는 음력으로 ' + lunar + ' 입니다.');
}

function strTest6() {
	var str = '2021-09-02 (모오오오오오옥) 2021-07-26';
//	split() 함수는 인수로 지정된 구분자를 경계로 문자열을 나눠서 배열로 리턴한다.
	var arr = str.split(' ');
	console.log(arr);
	console.log('양력 ' + arr[0] + '는 음력으로 ' + arr[2] + ' 입니다.');
}

실행 결과

파일 실행


1번 실행 버튼 클릭


2번 실행 버튼 클릭


3번 실행 버튼 클릭

숫자 입력 시

홍길동 입력 시

 

확인 버튼 클릭


4번 실행 버튼 클릭

홍길동 입력 시

일지매 입력 시


5번 실행 버튼 클릭


6번 실행 버튼 클릭