[HTML5&JavaScript] String

고동이의 IT·2021년 11월 17일
0

HTML5&JavaScript

목록 보기
10/15
post-thumbnail

String 메소드

charAt(index)

  • 지정된 index 위치의 문자를 리턴한다.

charCodeAt(index)

  • 지정된 index 위치의 문자 코드를 리턴한다.

substring(start, end)

  • start ~ end 사이의 문자열 추출

slice(start, end)

  • start ~ end 사이의 문자열 추출

substr(start, length)

  • start부터 length갯수만큼 추출

split(구분자, 갯수)

  • 구분자를 기준으로 문자열을 분리하여 배열로 생성되어 저장한다.
    갯수는 생략가능하다. 생략시 전체를 대상으로 한다.

replace(oldvalue, newvalue)

  • oldvalue를 newvalue로 변경한다.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="../css/mystyle.css" type="text/css">
<script type="text/javascript">
str = "korea 우리 나라 좋은 나라 대한 민국 Korea";

function proc1(){
	a = str.charAt(4);
	codea = str.charCodeAt(4);
	
	res = str + "<br>";
	res += "srt.charAt(4): "+a+"<br>";
	res += "str.charCodeAt(4): "+codea+"<br>";
	
	document.getElementById('result1').innerHTML = res;
}

function proc2(){
	subs = str.substring(3, 7); /* 3에서 7까지 */
	slic = str.slice(3, 7);	/* 3에서 7까지 */
	sublen = str.substr(3, 5); /* 3부터 5개 글자를 추출 */
	
	res = str + "<br>";
	res += "str.substring(3, 7): "+ subs + "<br>";
	res += "str.slice(3, 7): "+ slic+ "<br>";
	res += "str.subststr(3, 7): "+ sublen+ "<br>";
	
	document.getElementById('result2').innerHTML = res;
	
}

function proc3(){
	arr = str.split(" ");
	
	document.getElementById('result3').innerHTML = arr;
	
}

function proc4(){
	area = document.getElementsByTagName('textarea')[0].value;
	/* area = document.querySelector('textarea').value; */
	
	reparea = area.replace(/\r/g,"").replace(/\n/g, "<br>");
	
	aa = str.replace(/korea/gi,'꾞릮아');
	alert(aa);
	
	document.getElementById('result4').innerHTML = reparea;
}
function proc5(){
	input = prompt("찾는 문자열을 입력하세요");
	
	value1 = str.match(/korea/gi); /* gi : korea랑 Korea둘다 찾아짐 */
	console.log(value1);
	
	value2 = str.match(/Good/gi); 
	console.log(value2);
	
	document.getElementById('result5').innerHTML = "str.match(/korea/gi) <br>";
	document.getElementById('result5').innerHTML += "배열을 리턴한다:" + value1 + "<br>";
	document.getElementById('result5').innerHTML += "str.match(/Good/gi) <br>";
	document.getElementById('result5').innerHTML += "null을 리턴한다:"+value2;
	
	
}
</script>
</head>
<body>

<div class="box">
	charAt(index): 지정된 index 위치의 문자를 리턴한다.<br>
	charCodeAt(index): 지정된 index 위치의 문자 코드를 리턴한다.<br>
	
	<br>
	<button type="button" onclick="proc1()">확인</button>
	
	<div id="result1"></div>
	
</div>

<div class="box">
	문자열 추출<br>
	substring(start, end): start ~ end 사이의 문자열 추출<br>
	slice(start, end): start ~ end 사이의 문자열 추출<br>
	substr(start, length): start부터 length갯수만큼 추출<br>
	
	<br>
	<button type="button" onclick="proc2()">확인</button>
	
	<div id="result2"></div>
	
</div>

<div class="box">
	문자열 분리<br>
	split(구분자, 갯수): 구분자를 기준으로 문자열을 분리하여 배열로 생성되어 저장한다.<br>
	갯수는 생략가능하다. 생략시 전체를 대상으로 한다.<br>
	
	<br>
	<button type="button" onclick="proc3()">확인</button>
	
	<div id="result3"></div>
	
</div>

<div class="box">
	문자열 대체- 수정<br>
	replace(oldvalue, newvalue): oldvalue를 newvalue로 변경한다.<br>
	textarea에 여러줄로 입력된 문자를 script로 보낸다. - value <br>
	id가 result4번인 요소에 출력한다. <br>
	출력시 \r\n을 &lt;br> 태그로 변경하여 출력한다.<br><br> 
	<textarea rows="5" cols="50"></textarea>
	<button type="button" onclick="proc4()">확인</button>
	
	<div id="result4"></div>
	
</div>

<div class="box">
	문자열 검색<br>
	match(value):value를 검색한다.<br>
	검색된 문자열을 배열로리턴하고 검색문자가 없으면 null를 리턴한다. <br>
	id가 result4번인 요소에 출력한다. <br>
	출력시 \r\n을 &lt;br> 태그로 변경하여 출력한다.<br><br> 
	<button type="button" onclick="proc5()">확인</button>
	
	<div id="result5"></div>
	
</div>

</body>
</html>

주민등록번호를 입력 받아 생년월일과 성별을 출력하는 프로그램

주민번호 유효성 검사 예제

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" href="../css/mystyle.css" type="text/css">
<script type="text/javascript">
function proc1(){
   today = new Date(); // 2021.11.17 시간
   
   // 990504 "2"408712 -> 1,2 - 1900/ 3,4-2000 ,1,3남자
    num = prompt("주민번호를 입력하세요.", "-없이 입력");
   /* year = num.substring(0, 2); */
   month = num.substring(2, 4);
   day = num.substring(4, 6);
   /* gender = num.substr(6, 1); */
   
    if(num.substr(6, 1) == 1 || num.substr(6, 1) == 2){
      year = "19"+num.substring(0, 2);
   }
    else{
      year = "20"+num.substring(0, 2);
    }
    
    if(num.substr(6, 1)==1 || num.substr(6, 1)==3){
       gender = "남자"
    }else{
       gender = "여자"
    }
    
   
    today.getFullYear() //2021
    age =  (today.getFullYear()-year)+1;
   
    str = "생일: " + year+"년"+ month+"월"+ day+ "일"+"<br>";
    str += "성별: "+gender+"<br>";
    str += "나이:"+age;
   
    
   document.getElementById('result1').innerHTML = str;
   
   
}

function proc2(){
   /* str = "234567892345"; */
   
   // 입력 (가정: 1103264432618)
   code = prompt("주민번호 입력", '-없이 입력');
   // code.length = 13 index : 0부터 12까지 
   sum = 0;
   // 입력된것을 한자리씩 추출 : 0부터 11까지 추출
   
   for(i=0; i<code.length-1; i++){
   /*    sum += code.substr(i,1) * str.substr(i,1); */
      sum += code.substr(i,1) * (i % 8 + 2);
   }
   
   res = 11 - sum % 11 // 0~11
   res = res % 10;
/*    if(res == 10) 
      res =0;
   if(res == 11)
      res =1; */
   
   
   if(res == code.substr(code.length-1,1)){
      alert("옳바른 주민번호다.");
   }else{
      alert("틀린 주민번호다.");
   }
   
}
</script>
</head>
<body>

   <div class="box">
   주민등록번호를 입력 받아 ( -없이 입력 ) 생년월일과 성별을 출력하는 프로그램을 작성하시오.(입력은 prompt로 입력받는다.)<br>
   예) 주민등록번호를 110326-4(1,2 - 1900/ 3,4-2000 ,1,3남자)432618로 입력 받은 경우<br>
   생일 : 2011년 3월 26일<br>
   성별 : 여자  나이: <br>
   
      <br>
      <button type="button" onclick="proc1()">확인</button>
      <div id="result1"></div>
   </div>
   
   <div class="box">
   주민등록번호를 입력 받아 주민등록번호의 유효성을 검사하는 프로그램을 작성하시오.(ABCDEF-GHIJKLM)<br>
   1. A*2 + B*3 + ... + H*9 + I*2 + ... + L*5 의 총합을 구한다.<br>
   110326-4432618<br>
   2. 1번의 합을 11로 나눈 나머지를 구한다.<br>
   3. 11에서 2번의 결과를 뺀다.<br>
   4. 3번의 결과가 0~9이면 값 그대로, 10이면 0, 11이면 1로 변환<br>
   5. 4번의 결과와 M자리의 값이 같으면 맞는 번호이다.<br>
   
   <br>
   <button type="button" onclick="proc2()">확인</button>
   <div id="result2"></div>
   </div>

</body>
</html>
profile
삐약..뺙뺙

0개의 댓글