TIL/academy

국비 TIL(Today I Learned) 20220721 Js String 메소드

토희 2022. 7. 21. 17:42
728x90

Js String 메소드

 

1. ~~~ 

 

 

 

 

 

js의 pad 기능 애기하다가 pad기능은 오라클에서 많이 쓴다고 예시 보여주심

 

search(), match()라는 것도 있음

search() 정규식 쓸수있음

 

 

 

Js Event

function: 기능

funciton 함수명(인자명, ...) {

   내용

 

   *만약 반환값이 있다면 

   return 값;

}

 

test2

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">

var s = "Hello World!!"
console.log(s.substring(3));
console.log(s.substring(3, 4)); // 3이상 4미만, 3만 출력
// replace(값1, 값2) : 처음 값1을 찾아서 값2를 바꿈
console.log(s.replace("l","k")); // 처음만 바꿔줌
// replace(정규식 값, 값2) : 정규식에 따라 값을 찾고 값2로 바꿈
// 정규식 : /찾을값/옵션들
// replace에서 정규식 사용시 따옴표 안씀
// 옵션 gi 모두찾고, 대소문자 관계없이
console.log(s.replace(/l/gi,"k"));

// 대소문자화
console.log(s.toUpperCase());
console.log(s.toLowerCase());

// trim() : 앞뒤로 공백 제거
var a = "    hi !      ";
console.log(a.trim());

// padStart(숫자, 값) : 문자열이 숫자개수만큼 길이가 될때까지 값 채움
var b = "1";
console.log(b.padStart(5,"0"));


console.log(s.charAt(0));
// javascript에서는 문자열을 배열의 형태로 보관하기 때문에
// 별도의 작없없이 배열 취급이 가능
console.log(s[0]);


var c = "가나다,라마사,사야자";
console.log(c.split(","));


console.log(s.indexOf("l"));
console.log(s.indexOf("l", 4));

console.log(s.lastIndexOf("l"));
console.log(s.lastIndexOf("l", 4));


var d = 3.1415;

console.log(Math.round(d));
console.log(Math.ceil(d));
console.log(Math.floor(d));
console.log(Math.abs(-7));

console.log(Math.random());



// Lotto 번호 출력
var lotto = new Array(6);
for(var i =0; i < lotto.length; i++){
	lotto[i] = Math.floor(Math.random() * 45) + 1;
	
	for (var j = 0; j < i; j++) {
		if (lotto[i] == lotto[j]) {
			i--;
		}
	}
}

for(var a in lotto){
	console.log(lotto[a]);
}

lotto.sort()
for(var a in lotto){
	console.log(lotto[a]);
}

var lotto2 = new Array(6);
for(var i =0; i < lotto2.length; i++){
	lotto2[i] = Math.floor(Math.random() * 45) + 1;
	
		if (lotto2.indexOf(lotto2[i] < i)) {
			i--;
		}
}
for(var a in lotto2){
	console.log(lotto[a]);
}



</script>
</head>
<body>

</body>
</html>

test3

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
// window.onload : 화면이 다 로드 된 이후 실행
// onload 사용시 한번만 작성한다.
window.onload = function(){
	console.log("A");
}

var t1 = document.getElementById("txt");
console.log(t1); // null : 해당 시점에 화면에 대상이 없기 때문

console.log("B");

window.onload = function(){
	console.log("C")
	var t = document.getElementById("txt");
	console.log(t);
}
//함수 안에서는 변수 읽어올수 있음! 밖에서는 순서고려
function test(){
	console.log("함수 호출!")
	// document.getElementById(값)
	// : 아이디가 값과 일치하는 객체를 취득
	var t2 = document.getElementById("txt");
	console.log(t2);
	// 화면객체.속성 : 해당 속성의 값을 가져온다.
	// 화면객체.속성 = 값 : 해당 속성에 값을 넣는다.
	console.log(t2.value);
	console.log(t2.id);
	console.log(t2.type);
	t2.value = "기운냅시다";
	t2.type = "password";
}

function test2() {
	var ta = document.getElementById("ta");
	// textarea의 경우 실제 값은 엔티티에 보관됨
	// value속성 사용시 엔티티 접근 <태그>태그와 태그 사이가 엔티티<태그>
	console.log(ta.value);
}

</script>
</head>
<body>
<input type="text" id="txt" /> <br/> <br/>

<input type="button" value="버튼1" onclick="alert('a')"/>
<input type="button" value="버튼2" onclick="test()"/>
<input type="button" value="버튼3" onclick="test()" ondblclick="alert('더블')"/> <br/> <br/>

<textarea rows="5" cols="10" id="ta"></textarea>
<br/>
<input type="button" value="버튼4" onclick="test2()">
</body>
</html>

 

test4 숫자야구

(학원에서 한거)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">

var num1 = new Array(3);
for(var i =0; i < num1.length; i++){
	num1[i] = Math.floor(Math.random() * 9) + 1;
	
	for (var j = 0; j < i; j++) {
		if (num1[i] == num1[j]) {
			i--;
		}
	}
}

for(var a in num1){
	console.log(num1[a]);
}

var count1 = 0;

function numGet(a){
		var t = document.getElementById("txt");
		t.value += a;
		
		var num2 = "";
		num2 = t.value;
		
		
		if(num2.length == 3 && count1 != 9){
			count1++;
			
			
			let str = num1.join("");
			console.log(str);
			console.log(num2);
			
			console.log(str == num2);
			

			var Scount = 0;
			var Bcount = 0;
			var Ocount = 0;
			
			
			for(var i = 0 ; i < num2.length ; i++) {
			if(str.indexOf(num2[i]) == -1) {
				Ocount++;
	         } else if(str.indexOf(num2[i]) == i) {
	        	 Scount++;
	         } else {
	        	 Bcount++;
	         }
			 }
	      
			
			result.value +=  count1 + "회 - 입력값:" +num2 + "[" + Bcount +"B " + Scount +"S " + Ocount + "O ]";
			t.value = "";
			var Scount = 0;
			var Ocount = 0;
			var Bcount = 0;
			
		}
}	




</script>
</head>
<body>
<h2>숫자야구</h2>
<input type="text" value="" id="txt" onclick=""/>
<input type="button" value="리셋" onclick=""/> <br/>
<input type="button" value="1" id="num" onclick="numGet(value)"/>
<input type="button" value="2" id="num" onclick="numGet(value)"/>
<input type="button" value="3" id="num" onclick="numGet(value)"/>
<input type="button" value="4" id="num" onclick="numGet(value)"/>
<input type="button" value="5" id="num" onclick="numGet(value)"/> <br/>
<input type="button" value="6" id="num" onclick="numGet(value)"/>
<input type="button" value="7" id="num" onclick="numGet(value)"/>
<input type="button" value="8" id="num" onclick="numGet(value)"/>
<input type="button" value="9" id="num" onclick="numGet(value)"/> <br/><br/>

<textarea rows="30" cols="30" id="result"></textarea>
</body>
</html>

(집에서 추가로 한거)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">

var num1 = new Array(3);
for(var i =0; i < num1.length; i++){
	num1[i] = Math.floor(Math.random() * 9) + 1;
	
	for (var j = 0; j < i; j++) {
		if (num1[i] == num1[j]) {
			i--;
		}
	}
}

for(var a in num1){
	console.log(num1[a]);
}

var count1 = 0;

function numGet(a){
		var t = document.getElementById("txt");
		t.value += a;
		
		var num2 = "";
		num2 = t.value;
		
		if (num2.length == 3){
			
            count1++;

			let str = num1.join("");

			var Scount = 0;
			var Bcount = 0;
			var Ocount = 0;
						
			for(var i = 0 ; i < num2.length ; i++) {
			if(str.indexOf(num2[i]) == -1) {
				Ocount++;
	         } else if(str.indexOf(num2[i]) == i) {
	        	 Scount++;
	         } else {
	        	 Bcount++;
	         }
			 }
	      
			result.value +=  count1 + "회 - 입력값:" +num2 + "[" + Bcount +"B " + Scount +"S " + Ocount + "O ]" + "\n";
			t.value = "";
            if(Scount == 3){
                for(var i = 1; i <= 9; i++){
                    document.getElementById("num" + i).disabled = true;
                }
                
                result.style.color = "blue";

                result.value +=  "\n" + "게임에서 이겼습니다!";

            }
			var Scount = 0;
			var Ocount = 0;
			var Bcount = 0;

            if(count1 == 9){
                for(var i = 1; i <= 9; i++){
                    document.getElementById("num" + i).disabled = true;
                }
                result.value +=  "\n" + "게임에서 지셨습니다."
            }	
		}
}	
function reset(){
    var t = document.getElementById("txt");
    var r = document.getElementById("result");
	t.value = "";
    r.value = "";
    count1 = 0;

    for(var i = 1; i <= 9; i++){
        document.getElementById("num" + i).disabled = false;
    }
}



</script>
</head>
<body>
<h2>숫자야구</h2>
<input type="text" value="" id="txt" onclick=""/>
<input type="button" value="리셋" onclick="reset()"/> <br/>
<input type="button" value="1" id="num1" onclick="numGet(value)"/>
<input type="button" value="2" id="num2" onclick="numGet(value)"/>
<input type="button" value="3" id="num3" onclick="numGet(value)"/>
<input type="button" value="4" id="num4" onclick="numGet(value)"/>
<input type="button" value="5" id="num5" onclick="numGet(value)"/> <br/>
<input type="button" value="6" id="num6" onclick="numGet(value)"/>
<input type="button" value="7" id="num7" onclick="numGet(value)"/>
<input type="button" value="8" id="num8" onclick="numGet(value)"/>
<input type="button" value="9" id="num9" onclick="numGet(value)"/> <br/><br/>

<textarea rows="30" cols="30" id="result"></textarea>
</body>
</html>

숫자야구에서 indexOf가 키워드!!

728x90