๐ JavaScript
๐ฅ๏ธ String ๊ฐ์ฒด
์ค๋์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ์์ด ๊ฐ์ฒด(String Object)์ ๋ฉ์๋์ ์์ฑ์ ๋ํด ์์๋ณผ๊ฒ์.
์ฃผ์ํ ์ !
๋ฉ์๋๋ฅผ ์ฌ์ฉํ ๋ ์ธ๋ฑ์ค๊ฐ์ ๋งค๊ฐ๋ณ์๋ก ์ฌ์ฉํ ๋๊ฐ ์๋๋ฐ
์ธ๋ฑ์ค๊ฐ์ 0๋ถํฐ ์์ํ๋ฉฐ, ๋์ด์ฐ๊ธฐ ํฌํจ์ ๋๋ค.
โ
โ 1. String ๊ฐ์ฒด์ ๋ฉ์๋ ๋ฐ ์์ฑ ํ ๋์ ๋ณด๊ธฐ
โ
์ข
๋ฅ
|
๊ธฐ๋ฅ
|
charAt(index)
|
๋ฌธ์์ด์์ ์ธ๋ฑ์ค ๋ฒํธ์ ํด๋นํ๋ ๋ฌธ์๋ฅผ ๋ฐํ let str = "amazing web study"; str.charAt(2); // a๋ฅผ ๋ฐํ |
indexOf("์ฐพ์ ๋ฌธ์")
|
๋ฌธ์์ด์์ ์ผ์ชฝ๋ถํฐ ์ฐพ์ ๋ฌธ์์ ์ผ์นํ๋ ๋ฌธ์๋ฅผ ์ฐพ์ ์ ์ผ ๋จผ์ ์ผ์นํ๋ ๋ฌธ์์ ์ธ๋ฑ์ค ๋ฒํธ๋ฅผ ๋ฐํ ์ฐพ๋ ๋ฌธ์๊ฐ ์๋ ๊ฒฝ์ฐ -1์ ๋ฐํ let str = "amazing web study web"; str.indexOf("web"); // 8์ ๋ฐํ |
lastIndexOf("์ฐพ์ ๋ฌธ์")
|
๋ฌธ์์ด์์ ์ค๋ฅธ์ชฝ๋ถํฐ ์ฐพ์ ๋ฌธ์์ ์ผ์นํ๋ ๋ฌธ์๋ฅผ ์ฐพ์ ์ ์ผ ๋จผ์ ์ผ์นํ๋ ๋ฌธ์์ ์ธ๋ฑ์ค ๋ฒํธ๋ฅผ ๋ฐํ, ์ฐพ๋ ๋ฌธ์๊ฐ ์๋ ๊ฒฝ์ฐ -1์ ๋ฐํ let str = "amazing web study web"; str.indexOf("web"); // 18์ ๋ฐํ |
match("์ฐพ์ ๋ฌธ์", ?)
|
์ฐพ์ ๋ฌธ์์ ์ผ์นํ๋ ๋ฌธ์์ด์ ์ฐพ์ ๋ฐฐ์ด๋ก ๋ฐํ ํด๋น ๋ฌธ์์ด์ด ์์ผ๋ฉด null์ ๋ฐํ |
replace("๋ฐ๊ฟ ๋ฌธ์", "์ ๋ฌธ์") |
๋ฌธ์์ด์์ ์ผ์ชฝ๋ถํฐ ๋ฐ๊ฟ ๋ฌธ์์ ์ผ์นํ๋ ๋ฌธ์๋ฅผ ์ฐพ์ ์ ์ผ ๋จผ์ ์ฐพ์ ๋ฌธ์๋ฅผ ์ ๋ฌธ์๋ก ์นํ let str = "my little cat"; str.replace("my", "your"); // "your little cat"์ ๋ฐํ |
search("์ฐพ์ ๋ฌธ์")
|
๋ฌธ์์ด์์ ์ผ์ชฝ๋ถํฐ ์ฐพ์ ๋ฌธ์์ ์ผ์นํ๋ ๋ฌธ์๋ฅผ ์ฐพ์ ์ ์ผ ๋จผ์ ์ผ์นํ๋ ์ธ๋ฑ์ค ๋ฒํธ๋ฅผ ๋ฐํ let str = "amazing web study"; str.search("web"); // 8์ ๋ฐํ |
slice(a, b)
|
a๊ฐ์ ๋ฌธ์๋ฅผ ์๋ฅด๊ณ b๋ฒ์งธ ์ดํ์ ๋ฌธ์๋ฅผ ์๋ฅธ ํ ๋จ์ ๋ฌธ์๋ฅผ ๋ฐํ let str = ''hello javascript"; str.slice(3, 7); // "lo j" ๋ฐํ str.slice(3, -3); // "llo javascr" ๋ฐํ -1์ ๋ค์์๋ถํฐ ์ฒซ๋ฒ์งธ ๊ธ์๋ฅผ ๊ฐ๋ฆฌํด |
substring(a, b)
|
a ์ธ๋ฑ์ค๋ถํฐ b ์ธ๋ฑ์ค ์ด์ ๊ตฌ๊ฐ์ ๋ฌธ์๋ฅผ ๋ฐํ let str = "hello javascript"; str.substring(3, 7); // "lo j"๋ฅผ ๋ฐํ |
substr(a ,๋ฌธ์ ๊ฐ์)
|
๋ฌธ์์ด์ a ์ธ๋ฑ์ค๋ถํฐ ์ง์ ํ ๋ฌธ์ ๊ฐ์๋งํผ ๋ฌธ์์ด์ ๋ฐํ let str = "hello javascript"; str.substring(3, 2); // "lo" ๋ฐํ |
โ
[ ์์ ]
<script>
let t = "Hello Thank you good luck to you";
document.write(t.charAt(16), "<br>"); // ์ธ๋ฑ์ค 16์ ์ ์ฅ๋ ๋ฌธ์ ๋ถ๋ฌ์ค๊ธฐ => 16
document.write(t.indexOf("you"), "<br>");
// ์ผ์ชฝ์์๋ถํฐ ๊ฐ์ฅ ๋จผ์ ๋ฐ๊ฒฌํ "you"์ ์ธ๋ฑ์ค๊ฐ ๋ฐํ => 12
document.write(t.indexOf("you", 16), "<br>");
// ์ธ๋ฑ์ค 16 ์์น๋ก๋ถํฐ ๊ฐ์ฅ ๋จผ์ ๋ฐ๊ฒฌํ "you"์ ์ธ๋ฑ์ค๊ฐ ๋ฐํ => 29
document.write(t.lastIndexOf("you"), "<br>");
// ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ ๋ฐฉํฅ์ผ๋ก ์ ์ผ ๋จผ์ ๋ฐ๊ฒฌ๋ "you"์ ์ธ๋ฑ์ค๊ฐ ๋ฐํ => 29
document.write(t.lastIndexOf("you", 25), "<br>");
// ์ธ๋ฑ์ค 25๋ถํฐ ์ผ์ชฝ ๋ฐฉํฅ์ผ๋ก ์ ์ผ ๋จผ์ ๋ฐ๊ฒฌ๋ "you"์ ์ธ๋ฑ์ค๊ฐ ๋ฐํ => 12
document.write(t.replace("you", "me"), "<br>");
// ๋ฌธ์์ด ์ผ์ชฝ์์๋ถํฐ ์ ์ผ ๋จผ์ ๋ฐ๊ฒฌ๋ "you"๋ฅผ "me"๋ก ์นํ
document.write(t.search("you"), "<br>");
// ์ผ์ชฝ์์๋ถํฐ ์ ์ผ ๋จผ์ ๋ฐ๊ฒฌ๋ "you"์ ์ธ๋ฑ์ค๊ฐ ๋ฐํ => 12
document.write(t.substr(21, 4), "<br>");
// ์ธ๋ฑ์ค 21๋ถํฐ ๋ค ๊ธ์ ๊ฐ์ ธ์ค๊ธฐ. => "luck"
document.write(t.substring(6, 12), "<br>");
// ์ธ๋ฑ์ค 6๋ถํฐ 12 ์ด์ ๊น์ง์ ๋ฌธ์๋ฅผ ๋ฐํ => "Thank"
</script>
์ถ์ฒ: (์ด์ง์คํผ๋ธ๋ฆฌ์ฑ) ์๋ฐ์คํฌ๋ฆฝํธ + ์ ์ด์ฟผ๋ฆฌ ์ ๋ฌธ( p.107)
1-1. charAt()
chatAt(์ธ๋ฑ์ค๋ฒํธ) : ์ธ๋ฑ์ค n๋ฒ์ ์ ์ฅ๋ ๋ฌธ์ ๋ถ๋ฌ์ค๊ธฐ
<script>
let t = "Hello Thank you good luck to you";
document.write(t.charAt(16));
// ์ธ๋ฑ์ค 16์ ์ ์ฅ๋ ๋ฌธ์ ๋ถ๋ฌ์ค๊ธฐ => 16
</script>
1-2. indexOf()
indexOf("์ฐพ์ ๋ฌธ์") : ๋ฌธ์์ด ์ผ์ชฝ์์๋ถํฐ ์ ์ผ ๋จผ์ ๋ฐ๊ฒฌ๋ "์ฐพ์ ๋ฌธ์"์ ์ธ๋ฑ์ค ๋ฒํธ ๋ฐํ
<script>
let t = "Hello Thank you good luck to you";
document.write(t.indexOf("you"));
// ๋ฌธ์์ด ์ฒ์๋ถํฐ ์ ์ผ ๋จผ์ ๋ฐ๊ฒฌ๋ "you"์ ์ธ๋ฑ์ค๊ฐ ๋ฐํ => 12
document.write(t.indexOf("you", 16));
// ๋ฌธ์์ด ์ธ๋ฑ์ค 16 ์์น๋ถํฐ ์ ์ผ ๋จผ์ ๋ฐ๊ฒฌ๋ "you"์ ์ธ๋ฑ์ค๊ฐ ๋ฐํ => 29
</script>
1-3. lastIndexOf()
lastIndexOf("์ฐพ์ ๋ฌธ์") : ๋ฌธ์์ด ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ์ผ๋ก ์ ์ผ ๋จผ์ ๋ฐ๊ฒฌ๋ "์ฐพ์ ๋ฌธ์"์ ์ธ๋ฑ์ค ๋ฒํธ ๋ฐํ
<script>
let t = "Hello Thank you good luck to you";
document.write(t.lastIndexOf("you"));
// ๋ฌธ์์ด ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ์ผ๋ก ์ ์ผ ๋จผ์ ๋ฐ๊ฒฌ๋ "you"์ ์ธ๋ฑ์ค๊ฐ ๋ฐํ =>29
</script>
1-4. replace()
replace("๋ฐ๊ฟ ๋ฌธ์", "์ ๋ฌธ์") : ๋ฌธ์์ด์์ ์ผ์ชฝ๋ถํฐ "๋ฐ๊ฟ ๋ฌธ์"์ ์ผ์นํ๋ ๋ฌธ์๋ฅผ ์ฐพ์ ์ ์ผ ๋จผ์ ์ฐพ์ ๋ฌธ์๋ฅผ "์ ๋ฌธ์"๋ก ์นํ
<script>
let t = "Hello Thank you good luck to you";
document.write(t.replace("you", "me"));
// ๋ฌธ์์ด ์ผ์ชฝ์์๋ถํฐ ์ ์ผ ๋จผ์ ๋ฐ๊ฒฌ๋ "you"๋ฅผ "me"๋ก ์นํ
</script>
1-5. search()
search("์ฐพ์ ๋ฌธ์") : ์ผ์ชฝ๋ถํฐ ์ฐพ์ ๋ฌธ์์ ์ผ์นํ๋ ๋ฌธ์๋ฅผ ์ฐพ์ ์ ์ผ ๋จผ์ ์ผ์นํ๋ ์ธ๋ฑ์ค ๋ฒํธ ๋ฐํ
<script>
let t = "Hello Thank you good luck to you";
document.write(t.search("you"));
// ์ผ์ชฝ์์๋ถํฐ ์ ์ผ ๋จผ์ ๋ฐ๊ฒฌ๋ "you"์ ์ธ๋ฑ์ค๊ฐ ๋ฐํ => 12
</script>
1-6. slice()
slice(a, b) : a๊ฐ์ ๋ฌธ์๋ฅผ ์๋ฅด๊ณ b๋ฒ์งธ ์ดํ์ ๋ฌธ์๋ฅผ ์๋ฅธ ํ ๋จ์ ๋ฌธ์๋ฅผ ๋ฐํ
<script>
let str = "hello javascript";
document.write(str.slice(3, 7)); // "lo j" ๋ฐํ
document.write(str.slice(3, -3)); // "llo javascr" ๋ฐํ
//-1์ ๋ค์์๋ถํฐ ์ฒซ๋ฒ์งธ ๊ธ์๋ฅผ ๊ฐ๋ฆฌํด
</script>
1-7. substring()
substring(a, b) : a ์ธ๋ฑ์ค๋ถํฐ b ์ธ๋ฑ์ค ์ด์ ๊ตฌ๊ฐ์ ๋ฌธ์๋ฅผ ๋ฐํ
<script>
let t = "Hello Thank you good luck to you";
document.write(t.substring(6, 12));
// ์ธ๋ฑ์ค 6๋ถํฐ 12 ์ด์ ๊น์ง์ ๋ฌธ์๋ฅผ ๋ฐํ => "Thank"
</script>
1-8. substr()
substr(a, ๋ฌธ์ ๊ฐ์) : ๋ฌธ์์ด์ a ์ธ๋ฑ์ค๋ถํฐ ์ง์ ํ ๋ฌธ์ ๊ฐ์๋งํผ ๋ฌธ์์ด ๋ฐํ
<script>
let t = "Hello Thank you good luck to you";
document.write(t.substr(21, 4));
// ์ธ๋ฑ์ค 21๋ถํฐ ๋ค ๊ธ์ ๊ฐ์ ธ์ค๊ธฐ. => "luck"
</script>
โ 2. match() ๋ฉ์๋
2-1. match()
match ํจ์๋ ํน์ ํ ์คํธ ์์ ๊ฒ์ํ ๋จ์ด, ์ฐพ๊ณ ์ถ์ ๋จ์ด๊ฐ ์๋ ๊ฒฝ์ฐ ํด๋น ํ ์คํธ๊ฐ ๋ฌธ๊ตฌ์ ํฌํจ๋์ด ์๋์ง ํ์ธํ ์ ์์ต๋๋ค.
๋ํ ๋จ์ด๋ฟ๋ง ์๋๋ผ ์ ๊ทํํ์์ ์ฌ์ฉํ์ฌ ํน์ ํจํด์ ๊ฒ์ํ๋ ๊ฒ ์ญ์ ๊ฐ๋ฅํฉ๋๋ค.
ํด๋น ๋ฌธ์์ด.match('์ฐพ์ ๋จ์ด') - match() ํจ์๋ ์ธ์์ ํฌํจ๋ ๋ฌธ์๋ฅผ ์ฐพ์ผ๋ฉด ์ด๋ฅผ ๋ฐํํจ.
2-2. match() ์ฉ๋ฒ
1) match("์ฐพ์ ๋ฌธ์")
<script>
// ๋ฌธ์์ด๊ณผ ์ ๊ท ํํ์์ ์ฌ์ฉํ์ฌ match() ๋ฉ์๋ ํธ์ถ
const str = 'Hello, World!';
const regex = /Hello/; // ์ ๊ท ํํ์: 'Hello'์ ์ผ์นํ๋ ๋ฌธ์์ด ์ฐพ๊ธฐ
const result = str.match(regex); // match() ๋ฉ์๋ ํธ์ถ
// ๊ฒฐ๊ณผ ์ถ๋ ฅ
if (result) {
document.write('์ฐพ์ ๋ฌธ์์ด: ' + result[0]); // ์ผ์นํ๋ ๋ฌธ์์ด ์ถ๋ ฅ
} else {
document.write('์ผ์นํ๋ ๋ฌธ์์ด์ด ์์ต๋๋ค.');
}
</script>
[๊ฒฐ๊ณผํ๋ฉด]
์ฐพ์ ๋ฌธ์์ด : Hello
2) match(์ ๊ทํํ์)
<script>
let test = 'love you. love me. love everything!'
let regExp = /love/gi;
test2 = test.match(regExp);
</script>
์ ๊ทํํ์ ์ฝ๋๋ ๋ฐ๋ก regExp ๋ณ์์ ์ ์ฅํ์์ผ๋ฉฐ, ํํ์ ๋ค์ gi๋ ๋์๋ฌธ์ ๊ตฌ๋ถ์ ํ์ฉํ์ง ์๊ณ ๋ชจ๋ ํจํด์ ๊ฒ์ํ๊ธฐ ์ํจ์ด๋ค.
[๊ฒฐ๊ณผํ๋ฉด]
['love', 'love', 'love']
// test2๋ณ์์ ๋ฐฐ์ด๋ก ๋ชจ๋ love ํ
์คํธ๊ฐ ์ ์ฅ๋จ
2-3. (์์ฉ) ํ์ฌ ํ์ด์ง๊ฐ ์๋ฌธํ์ด์ง์ธ์ง ํ๊ธํ์ด์ง์ธ์ง ํ์ธํ๋ ์ฝ๋
์๋๋ ํ์ฌ ํ์ด์ง์ ํ๋ผ๋ฏธํฐ(์ฟผ๋ฆฌ์คํธ๋ง)์ 'en.'์ด ํฌํจ๋์ด ์๋์ง๋ฅผ ํ์ธํ์ฌ ์๋ฌธ ํ์ด์ง์ธ์ง ํ๊ธ ํ์ด์ง์ธ์ง ์๋ ค์ฃผ๋ ์ฝ๋์ ๋๋ค. ํ์ฌ webisfree.com์ ์๋ฌธ์ฌ์ดํธ๋ http://webisfree.com/en/ ์ ๋๋ค. ์๋ ์ฝ๋๋ ํ์ฌ ํ์ด์ง์ url ์ฃผ์๋ฅผ ๊ฒ์ํ์ฌ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ํ๊ตญํ์ด์ง ๋๋ ์๋ฌธํ์ด์ง ์ฌ๋ถ๋ฅผ alert() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ณด์ฌ์ฃผ๋ ๊ฐ๋จํ ์คํฌ๋ฆฝํธ ์์ ์ ๋๋ค.
<script>
if (!location.href.match('/en')) {
alert('English page!');
}
else {
alert('Korean page!');
}
</script>
์ ์ฝ๋๋ ํ์ฌ url ์ฃผ์์ '/en'์ด ํฌํจ๋์ด ์๋์ง match() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํ์ธํฉ๋๋ค. ๋ง์ฝ์ ํ์ฌ ์ ์์ url์ ํด๋น ๊ฐ์ด ํฌํจ๋์ด ์๋ค๋ฉด ๊ฒฝ๊ณ ์ฐฝ์ ๋์ฐ๊ณ ์๋ฌธ ํ์ด์ง, ๊ตญ๋ฌธํ์ด์ง๋ฅผ ์ถ๋ ฅํ ๊ฒ์ ๋๋ค.