Notice
Recent Posts
Recent Comments
ยซ   2024/12   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
In Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

A Joyful AI Research Journey๐ŸŒณ๐Ÿ˜Š

[18] 230120 Ch. 10 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ DOM๊ณผ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ, ์ž…๋ ฅ ๊ฒ€์ฆ: 7. ํผ์˜ ์œ ํšจ์„ฑ ๊ฒ€์ฆ [K-๋””์ง€ํ„ธ ํŠธ๋ ˆ์ด๋‹ 18์ผ] ๋ณธ๋ฌธ

๐ŸŒณBootcamp Revision 2023โœจ/JavaScript, jQuery, Ajax, JSON

[18] 230120 Ch. 10 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ DOM๊ณผ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ, ์ž…๋ ฅ ๊ฒ€์ฆ: 7. ํผ์˜ ์œ ํšจ์„ฑ ๊ฒ€์ฆ [K-๋””์ง€ํ„ธ ํŠธ๋ ˆ์ด๋‹ 18์ผ]

yjyuwisely 2023. 1. 20. 12:51

230120 Fri 18th class

Ch. 10 DOM๊ณผ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ, ์ž…๋ ฅ ๊ฒ€์ฆ
์ง„๋„: p. 407 ~ (๊ต์žฌ: HTML5 + CSS3 + JavaScript๋กœ ๋ฐฐ์šฐ๋Š” ์›นํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ, ์ €์ž: ์ฒœ์ธ๊ตญ)

 

HTML5+CSS3+JavaScript๋กœ ๋ฐฐ์šฐ๋Š” ์›นํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ | ์ฒœ์ธ๊ตญ - ๊ต๋ณด๋ฌธ๊ณ 

HTML5+CSS3+JavaScript๋กœ ๋ฐฐ์šฐ๋Š” ์›นํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ | ์›นํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ดˆ๋ณด์ž๋„ ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” ์›น ๊ฐœ๋ฐœ ์ง€์นจ์„œ!์ด ์ฑ…์€ ์›นํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ฒ˜์Œ ๋ฐฐ์šฐ๋Š” ์ดˆ๋ณด์ž๋“ค์„ ์œ„ํ•ด ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ ์„ค๋ช…ํ•œ๋‹ค. 1~3์žฅ์—

product.kyobobook.co.kr


์˜ค๋Š˜ ๋ฐฐ์šด ๊ฒƒ ์ค‘ ๊ธฐ์–ตํ•  ๊ฒƒ์„ ์ •๋ฆฌํ–ˆ๋‹ค.


์ง€๋‚œ ์ˆ˜์—… ๋•Œ ๋ฐฐ์šด ๊ฒƒ ์ค‘ ๋‹ค์‹œ ๊ธฐ์–ตํ•  ๊ฒƒ

: During form submission, if a particular entry is unfilled, return false is used to prevent the submission of the form.
 
 
 
-label ํƒœ๊ทธ๋Š” ์ž…๋ ฅ ์–‘์‹์ฐฝ(input, button, textarea ๋“ฑ)์„ ์„ค๋ช…ํ•˜๋Š” ์ด๋ฆ„ํ‘œ์ด๋‹ค.

2023.01.17 - [1. Revision 2023/Javascript] - [15] 230117 Ch. 9 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด: ๊ฐ์ฒด, ๊ฐ์ฒด์˜ ์ƒ์„ฑ ๋ฐ ์‚ฌ์šฉ, ํ”„๋กœํ† ํƒ€์ž…, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋‚ด์žฅ ๊ฐ์ฒด, Array ๊ฐ์ฒด, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ์˜ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ

- ๋ฌธ์ž์—ด ๋งค์นญ p. 355

match() ๋ฉ”์„œ๋“œ๋Š” ๋ฌธ์ž์—ด ์•ˆ์—์„œ ์ผ์น˜ํ•˜๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. 
์ •๊ทœ์‹(regular expression)์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰ ?, *, ^ ๋“ฑ์˜ ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ์‹œ)

var str = "Like father, like son.";

//like๋ฅผ ์ฐพ๋Š”๋‹ค. 
//i๋Š” ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์Œ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์˜ต์…˜์ด๋‹ค.
//g๋Š” ๊ฒ€์ƒ‰๋œ ๋ชจ๋“  ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์คŒ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์˜ต์…˜์ด๋‹ค.
result = str.match(/like/ig);
document.write(result);

๊ฒฐ๊ณผ)


- "demo"์š”์†Œ์˜ innerHTML๋Š” x๋กœ ์„ค์ •๋œ๋‹ค.
document.getElementById("demo").innerHTML = x;


innerHTML ์†์„ฑ์€ (ํ…์ŠคํŠธ)๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ์„ ์ˆ˜๋„ ์žˆ๊ณ , (HTML + ํ…์ŠคํŠธ)์ผ ์ˆ˜๋„ ์žˆ๋‹ค. 
ex) <strong> ํƒœ๊ทธ๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜๋„ ์žˆ๋‹ค.

์–ด๋–ค ์š”์†Œ์˜ ์ฝ˜ํ…์ธ ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ผ๋ฉด (์ฆ‰ ์‹œ์ž‘ ํƒœ๊ทธ์™€ ์ข…๋ฃŒ ํƒœ๊ทธ ์‚ฌ์ด์˜ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด)
innerHTML ์†์„ฑ์— ์›ํ•˜๋Š” ๋‚ด์šฉ์„ ๋Œ€์ž…ํ•ด ์ฃผ๋ฉด ๋œ๋‹ค.

id = "main"์ธ <div> ์š”์†Œ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค. HTML DOM์„ ์ด์šฉํ•ด id = "main"์ธ ์š”์†Œ๋ฅผ ์ฐพ๋Š”๋‹ค.
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์š”์†Œ์˜ ๋‚ด์šฉ(innerHTML)์„ ๋ณ€๊ฒฝํ•œ๋‹ค.

document.getElementById("main).innerHTML = "์›น ํŽ˜์ด์ง€๊ฐ€ ์ž‘์†ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค.";


์ฐธ๊ณ : https://meaningone.tistory.com/316


- ์š”์†Œ์˜ ๋‚ด์šฉ ๋ณ€๊ฒฝํ•˜๊ธฐ p. 384

ํŠน์ • HTML ์š”์†Œ์˜ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์‹ถ์œผ๋ฉด innerHTML ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.
innerHTML์€ ์š”์†Œ์˜ ์‹œ์ž‘ ํƒœ๊ทธ์™€ ์ข…๋ฃŒ ํƒœ๊ทธ ์‚ฌ์ด์— ๋†“์ธ ๋ชจ๋“  HTML ์ฝ”๋“œ์™€ ํ…์ŠคํŠธ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

<div id = "main"> ์ด๊ฒƒ์ด div ์š”์†Œ์ž…๋‹ˆ๋‹ค. </div>

<div id = "main">: ์‹œ์ž‘ ํƒœ๊ทธ
์ด๊ฒƒ์ด div ์š”์†Œ์ž…๋‹ˆ๋‹ค.: <div> ์š”์†Œ์˜ innerHTML
</div>: ์ข…๋ฃŒ ํƒœ๊ทธ


Ch. 10 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ DOM๊ณผ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ, ์ž…๋ ฅ ๊ฒ€์ฆ

์ฑ…์˜ ๋ชฉ์ฐจ
-๋ฌธ์„œ ๊ฐ์ฒด ๋ชจ๋ธ(DOM)
-HTML ์š”์†Œ ์ฐพ๊ธฐ
-HTML ๋ณ€๊ฒฝํ•˜๊ธฐ
-DOM ๋…ธ๋“œ ์‚ญ์ œ์™€ ์ถ”๊ฐ€
-๋ธŒ๋ผ์šฐ์ € ๊ฐ์ฒด ๋ชจ๋ธ
-์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ
-ํผ์˜ ์œ ํšจ์„ฑ ๊ฒ€์ฆ

7. ํผ์˜ ์œ ํšจ์„ฑ ๊ฒ€์ฆ p. 407

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” HTML ํผ ์•ˆ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด๊ธฐ ์ „์— ๊ฒ€์ฆํ•˜๋Š” ๋ฐ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค.
ex) ์•„์ด๋””์™€ ๊ฐ™์€ ํ•„์ˆ˜ ์ž…๋ ฅ

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‚ฌ์šฉ์ž์˜ ์‹ค์ˆ˜๋ฅผ ์ˆ˜์ •ํ•œ ๋‹ค์Œ์— ์„œ๋ฒ„๋กœ ๋ณด๋‚ธ๋‹ค๋ฉด ์„œ๋ฒ„์˜ ๋ถ€ํ•˜๋ฅผ ๋œ์–ด์ค„ ์ˆ˜ ์žˆ๊ณ , ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ณด๋‹ค ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ ๋‹ค.

๊ฒ€์ฆ ์‚ฌํ•ญ ์˜ˆ์‹œ)
1. ์‚ฌ์šฉ์ž๊ฐ€ ํ•„์ˆ˜์ ์ธ ํ•„๋“œ๋ฅผ ์ฑ„์› ๋Š”๊ฐ€?
2. ์‚ฌ์šฉ์ž๊ฐ€ ์œ ์š”ํ•œ ๊ธธ์ด์˜ ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•˜์˜€๋Š”๊ฐ€?
3. ์‚ฌ์šฉ์ž๊ฐ€ ์œ ํšจํ•œ ์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•˜์˜€๋Š”๊ฐ€?
4. ์‚ฌ์šฉ์ž๊ฐ€ ์œ ์š”ํ•œ ๋‚ ์งœ๋ฅผ ์ž…๋ ฅํ•˜์˜€๋Š”๊ฐ€?
5. ์‚ฌ์šฉ์ž๊ฐ€ ์ˆซ์ž ํ•„๋“œ์— ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š์•˜๋Š”๊ฐ€? 

์˜ˆ์‹œ)

<h3>ํšŒ์›๊ฐ€์ž…</h3>
<form>
	์ด๋ฆ„ : <input type = "text" id = "name"><br>
	์ฃผ์†Œ : <input type = "text" id = "address"><br>
	์ƒ์ผ : <input type = "date" id = "birthday"><br>
	์•„์ด๋”” (6-8๋ฌธ์ž) : <input type = "text" id = "username"><br>
	์ด๋ฉ”์ผ : <input type = "email" id = "email"><br>
	ํœด๋Œ€ํฐ : <input type = "tel" id = "phone"><br>
	<input type="submit" value="ํ™•์ธ"><br>
</form>


๊ฒฐ๊ณผ)


7.1 ํผ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ p. 408

์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ํผ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํผ ์•ˆ์— ์žˆ๋Š” ํ•„๋“œ์˜ id๋‚˜ name ์†์„ฑ์„ ์ด์šฉํ•ด์•ผ ํ•œ๋‹ค.

<input type = "text id = "addr" name = "addr">

์˜ˆ์‹œ)

<script>
	function display(form){
		//alert("์—ฐ๊ฒฐ๋จ.")
		//1. alert(document.getElementById("addr").value);๋กœ ํ•ด๋„ ๊ฒฐ๊ณผ๋Š” ๊ฐ™๋‹ค.
		//2. alert(document.frm1.addr.value);
		//3. 
		alert(form["addr"].value);
	}
</script>
</head>
<body>
<h3>ํšŒ์›๊ฐ€์ž…</h3>
<form name="frm1">
	์ด๋ฆ„ : <input type = "text" id = "name"><br>
	์ฃผ์†Œ : <input type = "text" id = "addr" name="addr" onclick="display(this.form)"><br>
	์ƒ์ผ : <input type = "date" id = "birthday"><br>
	์•„์ด๋”” (6-8๋ฌธ์ž) : <input type = "text" id = "username"><br>
	์ด๋ฉ”์ผ : <input type = "email" id = "email"><br>
	ํœด๋Œ€ํฐ : <input type = "tel" id = "phone"><br>
	<input type="submit" value="ํ™•์ธ"><br>
</form>
</body>

๊ฒฐ๊ณผ) ํ…์ŠคํŠธ๊ฐ€ ํด๋ฆญ๋˜๋ฉด ํŒ์—…์ฐฝ์ด ๋œฌ๋‹ค. 

 


7.2 ์–ธ์ œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ฆํ•  ๊ฒƒ์ธ๊ฐ€? p. 409

1. ์‚ฌ์šฉ์ž๊ฐ€ ๋งˆ์šฐ์Šค๋กœ ์ž…๋ ฅ ํ•„๋“œ๋ฅผ ์„ ํƒํ•˜๋ฉด ๊ทธ ์ˆœ๊ฐ„ onfocus ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
2. ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•œ ํ›„์— ์ž…๋ ฅ ํ•„๋“œ๋ฅผ ๋– ๋‚˜๋ฉด (ํ•„๋“œ๊ฐ€ ์ž…๋ ฅ ํฌ์ปค์Šค๋ฅผ ์žƒ์œผ๋ฉด) onblur ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.ํฌ์ปค์Šค๋ฅผ ๋‹ค์‹œ ์ž…๋ ฅ ํ•„๋“œ๋กœ ๋Œ๋ ค๋†“์Šต๋‹ˆ๋‹ค.
3. ํ•„๋“œ๋ฅผ ๋– ๋‚  ๋•Œ ์ž…๋ ฅ ๋‚ด์šฉ์ด ๋ณ€๊ฒฝ๋˜๋ฉด (ํฌ์ปค์Šค๋ฅผ ์žƒ์œผ๋ฉด์„œ ์ž…๋ ฅ ๋‚ด์šฉ์ด ๋ณ€๊ฒฝ๋˜๋ฉด) onchange ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

7.3 ๊ณต๋ฐฑ ๊ฒ€์ฆ

๊ฐ€์žฅ ๊ธฐ์ดˆ์ ์ธ ๋ฐ์ดํ„ฐ ๊ฒ€์ฆ์€ ํ•„๋“œ๊ฐ€ ๋น„์–ด ์žˆ๋Š”์ง€๋ฅผ ์ฒดํฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. 

์˜ˆ์‹œ) ํ•„๋“œ๊ฐ€ ๋น„์–ด์žˆ์–ด๋„ ๋ฐœ์ƒ๋˜๋Š” onblur ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค. 
์‚ฌ์šฉ์ž๊ฐ€ ์•„๋ฌด๊ฒƒ๋„ ์ž…๋ ฅํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ๋ฅผ ์ฒดํฌํ•˜๋Š” ์ฝ”๋“œ์ด๋‹ค.

<script>
function checkNotEmpty(){
	var field = document.getElementById("user");
	//๋งŒ์•ฝ์— ์ด๋ฆ„์˜ ๊ฐ’์˜ ๊ธธ์ด๊ฐ€ 0์ด๋ฉด
	if(field.value.length == 0){
		//ํ•„๋“œ๊ฐ€ ๋น„์–ด์žˆ๋„ค์š”! ๋ผ๋Š” ์•Œ๋ฆผ์ฐฝ์„ ๋„์›Œ๋ผ
		alert("ํ•„๋“œ๊ฐ€ ๋น„์–ด์žˆ๋„ค์š”!")
		field.focus();
		//<form> ํƒœ๊ทธ๋ฅผ ๋™์ž‘์‹œํ‚ค์ง€ ์•Š๋Š”๋‹ค. 
		return false;
	}
	return true; 
}
</script>
</head>
<body>
<form>
	์ด๋ฆ„: <input type = "text" id = "user">
	<input type = "button" value = "ํ™•์ธ" onclick="checkNotEmpty()">
</form>
</body>

 

๊ฒฐ๊ณผ) ๋น„์–ด์ง„ ์ƒํƒœ์—์„œ ํ™•์ธ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ํŒ์—…์ฐฝ์ด ๋œฌ๋‹ค. 


7.4 ๋ฐ์ดํ„ฐ ๊ธธ์ด ๊ฒ€์ฆ p. 410

์‚ฌ์šฉ์ž๊ฐ€ ์ •ํ•ด์ง„ ๊ฐœ์ˆ˜์˜ ๋ฌธ์ž๋งŒ์„ ์ž…๋ ฅํ•˜๋„๋ก ํ•˜๋Š” ๊ฒฝ์šฐ๋„ ๋งŽ๋‹ค. ex) ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ: 13์ž๋ฆฌ

์˜ˆ์‹œ) ์ง€์ •ํ•œ ์ˆซ์ž ๋ฒ”์œ„์˜ ๊ธธ์ด๊ฐ€ ์•„๋‹ˆ๋ฉด ๊ฒฝ๊ณ ์ฐฝ์ด ๋œฌ๋‹ค. 

function checkLength(){
	var name = document.getElementById("name").value;
	//๋งŒ์•ฝ์— ์ด๋ฆ„ ๊ฐ’์˜ ๊ธธ์ด๊ฐ€ 6~8 ์‚ฌ์ด๋ผ๋ฉด
	if(name.length >= 6 && name.length <= 8){
		//์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ณ ,
		return true; 
	}//๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด
	else{
		//์ด๋ฆ„์€ 6~8์ž ์‚ฌ์ด๋กœ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š” ๋ผ๋Š” ์•Œ๋ฆผ์ฐฝ์„ ๋„์›Œ๋ผ.
		alert("์ด๋ฆ„์€ 6~8์ž ์‚ฌ์ด๋กœ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”");
		//์ด๋ฆ„์˜ ์ปค์„œ๋ฅผ ์ฃผ๊ณ 
		name.focus();
		//์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด์ง€ ๋งˆ๋ผ.
		return false;
	}
}
</script>
</head>
<body>
<form>
	์ด๋ฆ„: <input type = "text" id = "name">
	<input type = "button" value = "ํ™•์ธ" onclick="checkLength()">
</form>
</body>

๊ฒฐ๊ณผ)

 


7.5 ์ •๊ทœ์‹ (regular expression)

์ •๊ทœ์‹์ด๋ž€ ํŠน์ •ํ•œ ๊ทœ์น™์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฌธ์ž์—ด์„ ํ‘œํ˜„ํ•˜๋Š” ์ˆ˜์‹์ด๋‹ค. ๋งŽ์€ ํ…์ŠคํŠธ ์—๋””ํ„ฐ์™€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ๋ฌธ์ž์—ด์˜ ๊ฒ€์ƒ‰๊ณผ ์น˜ํ™˜์„ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค. 

^ [0 - 9] + a b c $

^: ๋ฌธ์ž์—ด์˜ ์‹œ์ž‘
[0 - 9]: 0๋ถ€ํ„ฐ 9๊นŒ์ง€์˜ ๋ฌธ์ž ์ค‘์˜ ํ•˜๋‚˜
+: ํ•œ ๋ฒˆ ์ด์ƒ์˜ ๋ฐ˜๋ณต
a b c: ๋ฌธ์ž์—ด "abc"
$: ๋ฌธ์ž์—ด์˜ ๋

์‹ ๊ธฐ๋Šฅ ์„ค๋ช…
^ ์‹œ์ž‘ ๋ฌธ์ž์—ด์˜ ์‹œ์ž‘์„ ํ‘œ์‹œํ•œ๋‹ค.
$ ๋ ๋ฌธ์ž์—ด์˜ ๋์„ ํ‘œ์‹œํ•œ๋‹ค.
/\d\d$/ : ๋์— 2์ž๋ฆฌ ์ˆซ์ž๊ฐ€ ์žˆ๋Š” ๋ฌธ์ž์—ด ex) "car01", "product82"
. ๋ฌธ์ž ํ•œ ๊ฐœ์˜ ๋ฌธ์ž์™€ ์ผ์น˜ํ•œ๋‹ค.
/./ : ํ•œ ์ž๋ฆฌ์˜ ๋ฌธ์ž ex) "A", "1", "$"
\d ์ˆซ์ž
Find a digit
ํ•œ ๊ฐœ์˜ ์ˆซ์ž์™€ ์ผ์น˜ํ•œ๋‹ค.
 /\d\d\d/ : 3์ž๋ฆฌ์˜ ์ˆซ์ž ex) "001", "123"

/^\d/ : ๋ฌธ์ž์—ด์˜ ์‹œ์ž‘์ด ํ•œ ์ž๋ฆฌ์˜ ์ˆซ์ž ex) "123" "2nd"

\w ๋ฌธ์ž์™€ ์ˆซ์ž
Find a word character
ํ•œ ๊ฐœ์˜ ๋ฌธ์ž๋‚˜ ์ˆซ์ž์™€ ์ผ์น˜ํ•œ๋‹ค.
/\w/: ํ•œ์ž๋ฆฌ ๋ฌธ์ž๋‚˜ ์ˆซ์ž ex) "8", "A"
\s ๊ณต๋ฐฑ ๋ฌธ์ž
Find a whitespace character
๊ณต๋ฐฑ, ํƒญ, ์ค„ ๋ฐ”๊ฟˆ, ์บ๋ฆฌ์ง€ ๋ฆฌํ„ด ๋ฌธ์ž์™€ ์ผ์น˜ํ•œ๋‹ค.
[] ๋ฌธ์ž ์ข…๋ฅ˜, ๋ฌธ์ž ๋ฒ”์œ„ [abc]๋Š” a ๋˜๋Š” b ๋˜๋Š” c๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

[a-z]๋Š” a๋ถ€ํ„ฐ z๊นŒ์ง€ ์ค‘์˜ ํ•˜๋‚˜์ด๋‹ค.
/[a-z]/: a๋ถ€ํ„ฐ z์‚ฌ์ด์˜ ํ•œ ๊ธ€์ž์™€ ์ผ์น˜

[1-9]๋Š” 1๋ถ€ํ„ฐ 9๊นŒ์ง€ ์ค‘์˜ ํ•˜๋‚˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.
^[1-9][0-9]*$: ์ฒ˜์Œ ์ˆซ์ž๊ฐ€ 0์ด ์•„๋‹ˆ๊ณ  ์ „์ฒด๊ฐ€ ์ˆซ์ž(ex. ๊ฐ€๊ฒฉ)

- /abc/ : ์ •ํ™•ํžˆ "abc"์™€๋งŒ ์ผ์น˜ํ•œ๋‹ค.

์ •๊ทœ ํ‘œํ˜„์‹์—๋Š” ๋ฉ”ํƒ€ ๋ฌธ์ž ๋’ค์— ์ˆ˜๋Ÿ‰ ํ•œ์ •์ž(quantifier)๋ฅผ ๋ถ™์ผ ์ˆ˜ ์žˆ๋‹ค. 
์ˆ˜๋Ÿ‰ ํ•œ์ •์ž๋Š” ๋ฌธ์ž๊ฐ€ ๋ช‡ ๋ฒˆ ๋ฐ˜๋ณต๋˜๋Š๋ƒ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

์ˆ˜๋Ÿ‰ ํ•œ์ •์ž ๊ธฐ๋Šฅ ์„ค๋ช…
* 0ํšŒ ์ด์ƒ ๋ฐ˜๋ณต
Matches any string that contains zero or more occurrences of n
"a*": "", "a", "aa", "aaa"๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค 

 /\w*/: ์–ด๋–ค ๋ฌธ์ž๋‚˜ ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด
^[1-9][0-9]*$: ์ฒ˜์Œ ์ˆซ์ž๊ฐ€ 0์ด ์•„๋‹ˆ๊ณ  ์ „์ฒด๊ฐ€ ์ˆซ์ž(ex. ๊ฐ€๊ฒฉ)
+ 1ํšŒ ์ด์ƒ ๋ฐ˜๋ณต
Matches any string that contains at least one n
"a+": "a", "aa", "aaa"๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

/.+/: ์–ด๋–ค ๋ฌธ์ž๊ฐ€ 1ํšŒ ์ด์ƒ ๋ฐ˜๋ณต
? 0ํšŒ ๋˜๋Š” 1ํšŒ
Matches any string that contains zero or one occurrences of n
"a?": "", "a"๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

/(Good)?Bye/: "GoodBye" ๋˜๋Š” "Bye"
{m} mํšŒ ๋ฐ˜๋ณต "a{3}": "aaa"

 /^\d{6}-\d{7}$/: ์ค‘๊ฐ„์— -์ด ์žˆ๋Š” ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ
/^\d{10}$/: ๊ณ„์ขŒ๋ฒˆํ˜ธ(10์ž๋ฆฌ์˜ ์ˆซ์ž๋กœ ๊ฐ€์ •) ๊ฒ€์ฆ,  ์ˆซ์ž 10๊ฐœ๋งŒ์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋ฌธ์ž์—ด

{m, n} mํšŒ ์ด์ƒ nํšŒ ์ดํ•˜ ๋ฐ˜๋ณต  "a{1,3}": "a", "aa", "aaa"๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.
(ab) ๊ทธ๋ฃนํ™”  (ab)*: "", "ab", "abab"

2013/06/01 ๋‚ ์งœ ํ‘œ๊ธฐ๋ฒ• ๊ฒ€์ฆ: /^\d{4}\d{2}\d{2}/
2013/6/1 ๋‚ ์งœ ํ‘œ๊ธฐ๋ฒ• ๊ฒ€์ฆ: /^\d{4}\d{1,2}\d{1,2}/

์˜ˆ์‹œ)

<script>
function checkNumeric(){
	//์ •๊ทœ์‹
	var exp = /^[0-9]+$/;
	var phone = document.getElementById("phone");
	//๋งŒ์•ฝ์— ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ํฐ๋ฒˆํ˜ธ(phone)์˜ ๊ฐ’(value)์ด ์ •๊ทœ์‹๊ณผ ์ผ์น˜ํ•˜๋ฉด (match)
	if (phone.value.match(exp)){
		// ๊ทธ๋Œ€๋กœ ๋ฐ์ดํ„ฐ ์ „์†ก
		return true;
	}else{
		alert("์ˆซ์ž๋งŒ ์ž…๋ ฅํ•˜์„ธ์š”.");
		phone.focus();
		return false;
	}
}
</script>
</head>
<body>
<form>
์ „ํ™”๋ฒˆํ˜ธ(-์—†์ด ์ž…๋ ฅ): <input type = "text" id = "phone">
<input type = "button" onclick ="checkNumeric()" value = "ํ™•์ธ">
</form>
</body>

๊ฒฐ๊ณผ)

//๋ชจ๋“  ๊ณต๋ฐฑ ์ฒดํฌ ์ •๊ทœ์‹
	var empJ = /\s/g;
	//์•„์ด๋”” ์ •๊ทœ์‹
	var idJ = /^[a-z0-9]{4,12}$/;
	// ๋น„๋ฐ€๋ฒˆํ˜ธ ์ •๊ทœ์‹
	var pwJ = /^[A-Za-z0-9]{4,12}$/; 
	// ์ด๋ฆ„ ์ •๊ทœ์‹
	var nameJ = /^[๊ฐ€-ํžฃ]{2,6}$/;
	// ์ด๋ฉ”์ผ ๊ฒ€์‚ฌ ์ •๊ทœ์‹
	var mailJ = /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;
	// ํœด๋Œ€ํฐ ๋ฒˆํ˜ธ ์ •๊ทœ์‹
	var phoneJ = /^01([0|1|6|7|8|9]?)?([0-9]{3,4})?([0-9]{4})$/;

์ฐธ๊ณ : https://sseong66.tistory.com/12


7.6 ์ˆซ์ž๋‚˜ ๋ฌธ์ž ์ž…๋ ฅ ๊ฒ€์ฆ p. 413

์‚ฌ์šฉ์ž๊ฐ€ ์‹ ์šฉ์นด๋“œ ๋ฒˆํ˜ธ, ์ „ํ™”๋ฒˆํ˜ธ, ์šฐํŽธ๋ฒˆํ˜ธ์™€ ๊ฐ™์€ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์›น ํŽ˜์ด์ง€๋Š” ์ด๋“ค์ด ๋ชจ๋‘ ์ˆซ์ž๋กœ ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๊ฒ€์ฆํ•ด์•ผ ํ•œ๋‹ค.
์ •๊ทœ์‹ /^[0-9]+$/๋Š” ๋ฌธ์ž์—ด์ด ๋ชจ๋‘ ์ˆซ์ž๊ฐ€ ๋˜์–ด ์žˆ์–ด์•ผ ์ผ์น˜ํ•œ๋‹ค.
^: ์‹œ์ž‘: ๋ฌธ์ž์—ด์˜ ์‹œ์ž‘

[0-9]: ๋ฌธ์ž ์ข…๋ฅ˜, ๋ฌธ์ž ๋ฒ”์œ„: 0๋ถ€ํ„ฐ 9๊นŒ์ง€์˜ ์ค‘์˜ ํ•˜๋‚˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.
+: 1ํšŒ ์ด์ƒ ๋ฐ˜๋ณต 
$: ๋: ๋ฌธ์ž์—ด์˜ ๋  

๋ฌธ์ž๋กœ๋งŒ ๋œ ์ž…๋ ฅ์„ ๊ฒ€์‚ฌํ•œ๋‹ค.

/^[a-zA-Z]+$/

๋ฌธ์ž์™€ ์ˆซ์ž๋กœ๋งŒ ๋œ ์ž…๋ ฅ์„ ๊ฒ€์‚ฌํ•œ๋‹ค.

/^[0-9a-zA-Z]+$/

 

์˜ˆ์‹œ) ์ „ํ™”๋ฒˆํ˜ธ ์นธ์— ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ ํŒ์—…์ฐฝ์ด ๋œฌ๋‹ค. 

<script>
function checkNumeric(elem,msg){
	var exp = /^[0-9]+$/;
	//match: ๋ฌธ์ž์—ด ์•ˆ์—์„œ ์ผ์น˜ํ•˜๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ํƒ์ƒ‰ํ•œ๋‹ค.
	if (elem.value.match(exp)){
		return true;
	} else{
		alert(msg);
		//ํ‚ค๋ณด๋“œ ํฌ์ปค์Šค(์ปค์„œ)๋ฅผ ์ด๋™์‹œํ‚จ๋‹ค. 
		elem.focus();
		return false;
	}
}
</script>
</head>
<body>
<form>
์ „ํ™”๋ฒˆํ˜ธ (-์—†์ด ์ž…๋ ฅ) : <input type = "text" id="phone">
<input type="button"
		onclick="checkNumeric(document.getElementById('phone'), '์ˆซ์ž๋งŒ ์ž…๋ ฅํ•˜์„ธ์š”!')"
		value='ํ™•์ธ'>
</form>
</body>

๊ฒฐ๊ณผ)


7.7 ์ด๋ฉ”์ผ ๊ฒ€์ฆ p. 414

์•ŒํŒŒ๋ฒณ(์†Œ๋ฌธ์ž ๋ฐ ๋Œ€๋ฌธ์ž ๋ชจ๋‘) ๋˜๋Š” ์ˆซ์ž ์‚ฌ์ด์˜ ์œ ํšจํ•œ ๋ฌธ์ž๋ฅผ ์ž„์˜์˜ ์กฐํ•ฉ์œผ๋กœ ๊ฐ€์ง€๋Š” ์ผ๋ จ์˜ ๋ฌธ์ž๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค.

^([A-Za-z]|[0-9])+$

์ด๋ฉ”์ผ ์ฃผ์†Œ์—์„œ ๋ช‡ ๊ฐ€์ง€๋งŒ ์ฒดํฌํ•œ๋‹ค.
- @gmail.com : @ ์•ž์— ๋ฌธ์ž๊ฐ€ ์ „ํ˜€ ์—†๋‹ค.

var exp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,}$/;


- ho!ng@gmail.com: ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ž !๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.

var exp = /^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;


- hong@g_mail.com: ๋„๋ฉ”์ธ ์ด๋ฆ„์—๋Š” _๊ฐ€ ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค.

var exp = /^([a-zA-Z0-9_.\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,})+$/;

7.8 ์„ ํƒ ๊ฒ€์ฆ p. 414

์ฒซ๋ฒˆ์งธ ์˜ต์…˜์„ ๋„์›€๋ง "์„ ํƒํ•˜์„ธ์š”"๋ผ๊ณ  ๋‘”๋‹ค. ๋งŒ์•ฝ ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒ์„ ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์ด ๋ฌธ๊ตฌ๊ฐ€ ๋ฐ˜ํ™˜๋  ๊ฒƒ์ด๋‹ค.

์˜ˆ์‹œ)

<script>
function checkSelection(){
	var fruit = document.getElementById("fruits");
	if(fruit.value == 0){
		alert("๊ณผ์ผ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.");
		fruit.focus();
		return false;
	}else{
		return true;
	}
}
</script>
</head>
<body>
<form>
๊ณผ์ผ ์„ ํƒ
<select id = "fruits">
	<option value="0">์„ ํƒํ•˜์„ธ์š”.</option>
	<option value="1">์‚ฌ๊ณผ</option>
	<option value="2">๋ฐฐ</option>
	<option value="3">๋ฐ”๋‚˜๋‚˜</option>
</select>
<input type="button" value="ํ™•์ธ" onclick="checkSelection()">
</form>
</body>

๊ฒฐ๊ณผ)

 ๋‚ด๊ฐ€ ์“ด ์ฝ”๋“œ) ํšŒ์›๊ฐ€์ž… ํผ

<style>
body{text-align:center;}
</style>
<script type="text/javascript">
//์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ์†Œ์Šค๋ฅผ ๋ถ„์„ํ•ด์„œ ์™„์„ฑํ•ด๋ณด์„ธ์š”! :)

function validchk(){//starts
	// ํผ ๊ฐ€์ ธ์˜ค๊ธฐ
	// (1) ์ด๋ฆ„(ํ•œ๊ธ€๋กœ ์‹œ์ž‘, ์ตœ์†Œ 2๊ธ€์ž ์ตœ๋Œ€ 6๊ธ€์ž)
	var name = document.getElementById("name");
	var nameJ = /^[๊ฐ€-ํžฃ]{2,6}$/;		

	// (2) ์—ฐ๋ฝ์ฒ˜
	var phone = document.getElementById("phone");
	//0์—์„œ 9๊นŒ์ง€: 3~4๊ธ€์ž, 0์—์„œ 9๊นŒ์ง€: 4๊ธ€์ž 
	var phoneJ = /^01([0|1|6|7|8|9]?)?([0-9]{3,4})?([0-9]{4})$/;
	
	// (3) ์ด๋ฉ”์ผ
	var email = document.getElementById("email");
	var mailJ = /^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*.[a-zA-Z]{2,3}$/i;

	// (4) ๋น„๋ฐ€๋ฒˆํ˜ธ(ํŠน์ˆ˜๋ฌธ์ž / ๋ฌธ์ž / ์ˆซ์ž ํฌํ•จ ํ˜•ํƒœ์˜ 8~15์ž๋ฆฌ ์ด๋‚ด์˜ ์•”ํ˜ธ ์ •๊ทœ์‹)
	var password = document.getElementById("password");
	var passJ = /^.*(?=^.{8,15}$)(?=.*\d)(?=.*[a-zA-Z])(?=.*[!@#$%^&+=]).*$/;
	
	// (4.1) ๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌํ™•์ธ
	var pwVerified = document.getElementById("pwVerified");
	
	
	// (1) ์ด๋ฆ„ ์œ ํšจ์„ฑ ๊ฒ€์ฆ
	//if(nameJ.test(name.value))๋กœ ํ•ด๋„ ๊ฐ™๋‹ค. 
	if(name.value.match(nameJ)){
		document.getElementById("msgName").innerHTML = "์ด๋ฆ„ ์œ ํšจ์„ฑ ๊ฒ€์ฆ ์™„๋ฃŒ์ž…๋‹ˆ๋‹ค.";
		document.getElementById("msgName").style.color ="green";
	} else {
		document.getElementById("msgName").innerHTML = "์ด๋ฆ„์„ ๋‹ค์‹œ ์ž…๋ ฅํ•˜์„ธ์š”.";
		document.getElementById("msgName").style.color = "red";
		name.focus();
		return false;
	}
	
	// (2) ์—ฐ๋ฝ์ฒ˜ ์œ ํšจ์„ฑ ๊ฒ€์ฆ
	if(phone.value.match(phoneJ)){
		document.getElementById("msgPhone").innerHTML = "์—ฐ๋ฝ์ฒ˜ ์œ ํšจ์„ฑ ๊ฒ€์ฆ ์™„๋ฃŒ์ž…๋‹ˆ๋‹ค.";
		document.getElementById("msgPhone").style.color ="green";
	} else {
		document.getElementById("msgPhone").innerHTML = "์—ฐ๋ฝ์ฒ˜๋ฅผ ๋‹ค์‹œ ์ž…๋ ฅํ•˜์„ธ์š”.";
		document.getElementById("msgPhone").style.color = "red";
		phone.focus();
		return false;
	}
	
	// (3) ์ด๋ฉ”์ผ ์œ ํšจ์„ฑ ๊ฒ€์ฆ
	if(email.value.match(mailJ)){
		document.getElementById("msgEmail").innerHTML = "์ด๋ฉ”์ผ ์œ ํšจ์„ฑ ๊ฒ€์ฆ ์™„๋ฃŒ์ž…๋‹ˆ๋‹ค.";
		document.getElementById("msgEmail").style.color ="green";
	} else {
		document.getElementById("msgEmail").innerHTML = "์ด๋ฉ”์ผ์„ ๋‹ค์‹œ ์ž…๋ ฅํ•˜์„ธ์š”.";
		document.getElementById("msgEmail").style.color = "red";
		email.focus();
		return false;
	}
	
	// (4) ๋น„๋ฐ€๋ฒˆํ˜ธ ์œ ํšจ์„ฑ ๊ฒ€์ฆ
	if(password.value.match(passJ)){
		document.getElementById("msgPassword").innerHTML = "๋น„๋ฐ€๋ฒˆํ˜ธ ์œ ํšจ์„ฑ ๊ฒ€์ฆ ์™„๋ฃŒ์ž…๋‹ˆ๋‹ค.";
		document.getElementById("msgPassword").style.color ="green";
	} else {
		document.getElementById("msgPassword").innerHTML = "๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋‹ค์‹œ ์ž…๋ ฅํ•˜์„ธ์š”.";
		document.getElementById("msgPassword").style.color = "red";
		password.focus();
		return false;
	}
	
	// (4.1) ๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌํ™•์ธ (๋ฌธ์ž์—ด์ด ์ผ์น˜ํ•˜๋Š”์ง€)
	if (password.value == pwVerified.value){
		document.getElementById("msgPwVerified").innerHTML = "๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.";
		document.getElementById("msgPwVerified").style.color ="green";
	} else {
		document.getElementById("msgPwVerified").innerHTML = "๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋‹ค์‹œ ์ž…๋ ฅํ•˜์„ธ์š”.";
		document.getElementById("msgPwVerified").style.color = "red";
		pwVerified.focus();
		return false;
		}
	}
</script>
</head>
<body>
<h2>ํšŒ์› ์‹ ์ฒญ์„œ</h2>
<form>
	์ด๋ฆ„: <input type="text" id="name" onblur="validchk()" name="name"><br>
	<!-- <label>๋กœ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค. -->
	<!-- style="color:red" ๋Œ€์‹  style.color๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ํ•ด๋„ ๋œ๋‹ค. -->
	<span id="msgName"><br></span><br>
	
	์„ฑ๋ณ„: <input type="radio" name="gender" value="m">๋‚จ์„ฑ <input type="radio" name="gender" value="f">์—ฌ์„ฑ<br><br>
	
	ํœด๋Œ€ํฐ ๋ฒˆํ˜ธ: <input type="text" id="phone" name="phone"><br>
	<span id="msgPhone"><br></span><br>
	
	์ด๋ฉ”์ผ: <input type="text" id="email" name="email"><br>
	<span id="msgEmail"><br></span><br>
	
	ํŒจ์Šค์›Œ๋“œ(6-8 ๊ธ€์ž): <input type="password" id="password" name="password"><br>
	<span id="msgPassword"><br></span><br>
	
	ํŒจ์Šค์›Œ๋“œ ๊ฒ€์ฆ: <input type="password" id="pwVerified" onblur="validchk()" name="pwVerified"><br>
	<span id="msgPwVerified"><br></span><br>
	
	<input type="button" value="์ œ์ถœ" onclick="validchk('name','gender','phone','email','password','pwVerified')">
	<input type="reset" value="์ง€์šฐ๊ธฐ">
</form>
</body>

 

๊ฒฐ๊ณผ)


๊ธฐํƒ€

ํšŒ์› ๊ฐ€์ž… ํ•  ๋•Œ ๋ฉ”์‹œ์ง€ ๋ฐ‘์— ๋œจ๊ฒŒ ํ•˜๊ธฐ
https://velog.io/@party3205/JavaScript-%EC%9D%B4%EB%B2%A4%ED%8A%B8%EA%B0%9D%EC%B2%B4

์œ ํšจ์„ฑ ๊ฒ€์‚ฌ HTML
https://dw3232.tistory.com/9

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ •๊ทœํ‘œํ˜„์‹ ๋ชจ์Œ
https://velog.io/@qjspdl/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%A0%95%EA%B7%9C%ED%91%9C%ED%98%84%EC%8B%9D-%EB%AA%A8%EC%9D%8C


728x90
๋ฐ˜์‘ํ˜•

'๐ŸŒณBootcamp Revision 2023โœจ > JavaScript, jQuery, Ajax, JSON' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๋‚จ์€ ์ฑ•ํ„ฐ ๋ฆฌ์ŠคํŠธ: Ajax, JSON, API, JSP [K-๋””์ง€ํ„ธ ํŠธ๋ ˆ์ด๋‹ 19์ผ]  (0) 2023.01.25
[19] 230125 Ch. 12 jQUERY, Ajax, JSON: 1. jQuery, 2. ์ฒซ ๋ฒˆ์งธ jQuery ํ”„๋กœ๊ทธ๋žจ, 3. jQuery ๋ฌธ์žฅ์˜ ๊ตฌ์กฐ, 4. jQuery๋ฅผ ์ด์šฉํ•œ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ยท 5. ์• ๋‹ˆ๋ฉ”์ด์…˜ ํšจ๊ณผ [K-๋””์ง€ํ„ธ ํŠธ๋ ˆ์ด๋‹ 19์ผ]  (0) 2023.01.25
[17] 230119 Ch. 10 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ DOM๊ณผ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ, ์ž…๋ ฅ ๊ฒ€์ฆ: 4. DOM ๋…ธ๋“œ ์‚ญ์ œ์™€ ์ถ”๊ฐ€, 5. ๋ธŒ๋ผ์šฐ์ € ๊ฐ์ฒด ๋ชจ๋ธ, 6. ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ [K-๋””์ง€ํ„ธ ํŠธ๋ ˆ์ด๋‹ 17์ผ]  (0) 2023.01.19
[16] 230118 Ch. 10 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ DOM๊ณผ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ, ์ž…๋ ฅ ๊ฒ€์ฆ: 1. ๋ฌธ์„œ ๊ฐ์ฒด ๋ชจ๋ธ(DOM), 2. HTML ์š”์†Œ ์ฐพ๊ธฐ, 3. HTML ๋ณ€๊ฒฝํ•˜๊ธฐ [K-๋””์ง€ํ„ธ ํŠธ๋ ˆ์ด๋‹ 16์ผ]  (0) 2023.01.18
Comments