- Day 5:文字列操作 ― 「言葉を扱うコード」に一歩踏み込む
- 文字列の連結 ― 「言葉をつなげて文章にする」
- テンプレートリテラル ― 「埋め込みやすい」新しい書き方
- .length ― 文字列の「長さ」を知る
- 文字列メソッド ― 文字列を「加工する」ための道具
- 実践1:ユーザー名を使ったメッセージ生成
- 実践2:メールアドレスの簡単な処理
- 練習用テンプレート:ユーザー名+メールアドレス処理セット
- セキュリティ視点のひとこと
- Day 5のまとめ ― 文字列操作を覚えると、コードが一気に“会話”に近づく
- Day 5:文字列操作 ― 自動自己紹介文ジェネレーターを作ってみる
- 文字列の連結 ― 自己紹介文の「文章」を組み立てる
- テンプレートリテラル ― 読みやすくて「埋め込みやすい」書き方
- .length ― 自己紹介文の「長さ」をチェックする
- 文字列メソッド ― 自己紹介に使う文字列を整える
- ミニ課題:自動自己紹介文ジェネレーターを作る
- 練習用テンプレートコード ― そのまま貼って遊べる自己紹介ジェネレーター
- セキュリティ視点のひとこと
- Day 5のまとめ ― 自己紹介をコードに任せる楽しさ
Day 5:文字列操作 ― 「言葉を扱うコード」に一歩踏み込む
JavaScript入門90日コースのDay 5では、「文字列操作」をテーマに進めていきます。 これまで数字や真偽値を扱ってきましたが、実際のアプリでは「文字」を扱う場面がとても多いです。ユーザー名、メールアドレス、メッセージ、エラーテキストなど、すべて文字列です。 今日は、文字列の連結・テンプレートリテラル・.length・文字列メソッドを使いながら、ユーザー名を使ったメッセージ生成とメールアドレスの簡単な処理を体験していきます。
文字列の連結 ― 「言葉をつなげて文章にする」
基本の連結:+ でつなげる
文字列どうしをつなげて1つの文章にしたいときは、+ を使います。 これはDay 2・Day 3でも少し登場しましたが、改めて整理しておきます。
// 文字列の基本的な連結例です
const firstName = "太郎";
const lastName = "山田";
const fullName = lastName + " " + firstName; // 姓と名の間にスペースを入れています
console.log(fullName); // 山田 太郎
JavaScript" "のように、スペースも文字列として扱われます。- 文字列と変数を
+でつなげることで、柔軟に文章を作ることができます。
もう少し実用的な例として、挨拶メッセージを作ってみます。
const userName = "太郎";
const greeting = "こんにちは、" + userName + "さん!";
console.log(greeting); // こんにちは、太郎さん!
JavaScriptテンプレートリテラル ― 「埋め込みやすい」新しい書き方
バッククォートで囲んで ${} で埋め込む
テンプレートリテラルは、文字列の中に変数や式を埋め込みやすくするための書き方です。 次の2つがポイントです。
- 文字列を バッククォート(\`)で囲む
- 埋め込みたい部分を
${ ... }で書く
// テンプレートリテラルの基本例です
const userName = "太郎";
const age = 25;
const message = `こんにちは、${userName}さん。あなたは${age}歳ですね。`;
console.log(message);
// こんにちは、太郎さん。あなたは25歳ですね。
JavaScriptテンプレートリテラルのメリットは、
+を何度も書かなくてよい- 改行をそのまま書ける
- 式(計算など)もそのまま埋め込める
という点です。
const price = 2000;
const taxRate = 0.1;
const tax = price * taxRate;
const total = price + tax;
const receipt = `
商品価格:${price}円
消費税:${tax}円
合計:${total}円
`;
console.log(receipt);
/*
商品価格:2000円
消費税:200円
合計:2200円
*/
JavaScript.length ― 文字列の「長さ」を知る
何文字あるかを調べるプロパティ
.length は、文字列の「長さ」(文字数)を教えてくれるプロパティです。
// .length の基本例です
const userName = "太郎";
const email = "[email protected]";
console.log(userName.length); // 2(太郎は2文字)
console.log(email.length); // メールアドレスの文字数が表示されます
JavaScriptユーザー名やパスワードの長さチェックなどでよく使われます。
const password = "abc123";
if (password.length < 8) {
console.log("パスワードは8文字以上にしてください。");
} else {
console.log("パスワードの長さはOKです。");
}
JavaScript文字列メソッド ― 文字列を「加工する」ための道具
文字列には、便利なメソッドがいくつも用意されています。 ここでは、よく使うものをいくつか紹介します。
toUpperCase() / toLowerCase() ― 大文字・小文字に変換
const text = "JavaScript";
console.log(text.toUpperCase()); // "JAVASCRIPT"
console.log(text.toLowerCase()); // "javascript"
JavaScriptメールアドレスのドメイン部分を小文字にそろえる、などの用途があります。
trim() ― 前後の空白を削除
const rawInput = " [email protected] ";
const cleaned = rawInput.trim();
console.log(cleaned); // "[email protected]"
JavaScriptユーザー入力の前後に余計なスペースが入っていても、trim() で整えることができます。
includes() ― 特定の文字列が含まれているか調べる
const email = "[email protected]";
console.log(email.includes("@")); // true(@ が含まれている)
console.log(email.includes("example")); // true
console.log(email.includes("gmail")); // false
JavaScript簡易的なメールアドレスチェックなどに使えます。
indexOf() ― 特定の文字列がどこにあるか調べる
const email = "[email protected]";
const atIndex = email.indexOf("@");
console.log(atIndex); // @ の位置(インデックス)が表示されます
JavaScript-1 が返ってきた場合は、「見つからなかった」という意味です。
実践1:ユーザー名を使ったメッセージ生成
ここからはDay 5の実践編です。 まずは、ユーザー名を使ってメッセージを生成するミニプログラムを作っていきます。
ステップ1:ユーザー名を変数にする
// ==============================
// ユーザー名を使ったメッセージ生成
// ==============================
const userName = "太郎";
JavaScriptステップ2:連結とテンプレートリテラルでメッセージを作る
// 文字列連結でメッセージを作る例
const greeting1 = "こんにちは、" + userName + "さん。ようこそ!";
console.log(greeting1);
// テンプレートリテラルでメッセージを作る例
const greeting2 = `こんにちは、${userName}さん。ログインありがとうございます。`;
console.log(greeting2);
JavaScriptステップ3:名前の長さを使ってメッセージを変える(おまけ)
// 名前の長さによってメッセージを少し変えてみる例です
if (userName.length <= 2) {
console.log(`短いお名前ですね、${userName}さん。覚えやすいです!`);
} else {
console.log(`素敵なお名前ですね、${userName}さん。`);
}
JavaScriptここでは、.length と if を組み合わせて、「文字列の長さ」を条件に使っています。
実践2:メールアドレスの簡単な処理
次に、メールアドレスを題材にして、文字列メソッドを使った簡単な処理を体験していきます。
ステップ1:メールアドレスを変数にする
// ==============================
// メールアドレスの簡単な処理
// ==============================
const email = " [email protected] "; // わざとスペースと大文字を混ぜています
console.log("元のメールアドレス:" + email);
JavaScriptステップ2:前後の空白を削除する(trim)
// 前後の空白を削除します
const trimmedEmail = email.trim();
console.log("trim 後:" + trimmedEmail);
JavaScriptステップ3:小文字にそろえる(toLowerCase)
// 小文字に変換して、表記ゆれをなくします
const normalizedEmail = trimmedEmail.toLowerCase();
console.log("小文字に変換後:" + normalizedEmail);
JavaScriptステップ4:includes で「@」が含まれているかチェックする
// @ が含まれているか簡易チェックします
const hasAtMark = normalizedEmail.includes("@");
if (!hasAtMark) {
console.log("メールアドレスに @ が含まれていません。入力を確認してください。");
} else {
console.log("@ が含まれているので、形式としては一応OKそうです。");
}
JavaScriptステップ5:indexOf でユーザー名部分とドメイン部分を分ける
// @ の位置を調べて、ユーザー名部分とドメイン部分を分けてみます
const atIndex = normalizedEmail.indexOf("@");
if (atIndex === -1) {
console.log("メールアドレスの形式が正しくありません。");
} else {
const localPart = normalizedEmail.slice(0, atIndex); // @ より前の部分
const domainPart = normalizedEmail.slice(atIndex + 1); // @ より後ろの部分
console.log("ユーザー名部分:" + localPart);
console.log("ドメイン部分:" + domainPart);
// テンプレートリテラルで説明メッセージを作ってみます
const infoMessage = `
メールアドレスの解析結果:
- ユーザー名:${localPart}
- ドメイン:${domainPart}
`;
console.log(infoMessage);
}
JavaScriptここでは、
trim()で空白を削除toLowerCase()で小文字に統一includes()で「@」の有無をチェックindexOf()とslice()でユーザー名部分とドメイン部分を切り出し
という流れで、文字列メソッドを組み合わせています。
練習用テンプレート:ユーザー名+メールアドレス処理セット
最後に、Day 5の内容をまとめた練習用テンプレートを用意します。 ブラウザのコンソールにそのまま貼り付けて、ユーザー名やメールアドレスを自由に書き換えながら遊んでみてください。
// ==============================
// Day 5:文字列操作 練習テンプレート
// ユーザー名を使ったメッセージ生成+メールアドレス処理
// ==============================
// 1. ユーザー名を使ったメッセージ生成
const userName = "太郎"; // 自分の名前に書き換えてOKです
console.log("=== ユーザー名を使ったメッセージ生成 ===");
// 文字列連結でメッセージ
const greetingConcat = "こんにちは、" + userName + "さん。ようこそ!";
console.log(greetingConcat);
// テンプレートリテラルでメッセージ
const greetingTemplate = `こんにちは、${userName}さん。ログインありがとうございます。`;
console.log(greetingTemplate);
// 名前の長さを使ったメッセージ
if (userName.length <= 2) {
console.log(`短いお名前ですね、${userName}さん。覚えやすいです!`);
} else {
console.log(`素敵なお名前ですね、${userName}さん。`);
}
// 2. メールアドレスの簡単な処理
console.log("=== メールアドレスの簡単な処理 ===");
// わざとスペースと大文字を混ぜたメールアドレス
const rawEmail = " [email protected] ";
console.log("元のメールアドレス:" + rawEmail);
// 前後の空白を削除
const trimmedEmail = rawEmail.trim();
console.log("trim 後:" + trimmedEmail);
// 小文字に変換
const normalizedEmail = trimmedEmail.toLowerCase();
console.log("小文字に変換後:" + normalizedEmail);
// @ が含まれているかチェック
const hasAtMark = normalizedEmail.includes("@");
console.log("@ が含まれているか:" + hasAtMark);
// @ の位置を調べて、ユーザー名部分とドメイン部分を分ける
const atIndex = normalizedEmail.indexOf("@");
if (atIndex === -1) {
console.log("メールアドレスの形式が正しくありません。");
} else {
const localPart = normalizedEmail.slice(0, atIndex); // @ より前
const domainPart = normalizedEmail.slice(atIndex + 1); // @ より後ろ
console.log("ユーザー名部分:" + localPart);
console.log("ドメイン部分:" + domainPart);
const infoMessage = `
メールアドレスの解析結果:
- ユーザー名:${localPart}
- ドメイン:${domainPart}
`;
console.log(infoMessage);
}
JavaScriptこのテンプレートをベースに、
userNameを自分の名前に変えるrawEmailを自分のメールアドレス風の文字列に変える- メッセージ文言を自分好みにアレンジする
といった練習をすると、「文字列を扱うコード」がぐっと身近に感じられるようになります。
セキュリティ視点のひとこと
文字列操作は、セキュリティの世界でも非常に重要なテーマです。
- 入力値の前後の空白や大文字・小文字を正しく処理しないと、意図しない認証結果になる
- メールアドレスやユーザー名のチェックが甘いと、不正な値がシステムに入り込む
といった問題は、現実のサービスでも起こり得ます。 Day 5の段階から、「文字列をどう整えるか」「どんな条件でチェックするか」を意識してコードを書くクセをつけておくと、後々セキュアなアプリケーションを作りやすくなります。
Day 5のまとめ ― 文字列操作を覚えると、コードが一気に“会話”に近づく
Day 5では、次のポイントを押さえました。
+で文字列を連結して、文章を作れること- テンプレートリテラル(\
…\と${})で、読みやすく柔軟な文字列を作れること .lengthで文字列の長さを調べられることtrim・toLowerCase・includes・indexOfなどの文字列メソッドで、文字列を加工・チェックできること- 実践として、ユーザー名を使ったメッセージ生成と、メールアドレスの簡単な処理を行ったこと
文字列操作を覚えると、コードが「数字をいじるだけのもの」から、「ユーザーと対話するもの」に近づいていきます。 今日のうちに、コンソールでいろいろな名前やメールアドレスを試しながら、文字列操作の感覚を体に馴染ませていってください。
Day 5:文字列操作 ― 自動自己紹介文ジェネレーターを作ってみる
JavaScript入門90日コースのDay 5では、「文字列操作」をテーマに、ミニ課題として「自動自己紹介文ジェネレーター」を作っていきます。 名前・年齢・趣味・住んでいる場所などの情報を変数に入れて、それを組み合わせて自己紹介文を自動生成するプログラムです。 文字列の連結、テンプレートリテラル、.length、文字列メソッドを一気に使うので、Day 1〜4で学んだ内容がぐっとつながってくるはずです。
文字列の連結 ― 自己紹介文の「文章」を組み立てる
基本の連結:+ でつなげる
まずは、文字列どうしを + でつなげる基本から確認します。 自己紹介文は、いくつかの情報を組み合わせて1つの文章にするイメージです。
// 文字列連結の基本例です
const name = "太郎";
const age = 25;
const hobby = "映画鑑賞";
// 「こんにちは、太郎です。」という自己紹介文を作る
const intro1 = "こんにちは、" + name + "です。";
console.log(intro1); // こんにちは、太郎です。
JavaScriptここでは、文字列と変数を + でつなげて文章を作っています。
もう少し情報を増やしてみます。
const intro2 = "こんにちは、" + name + "です。" +
age + "歳で、趣味は" + hobby + "です。";
console.log(intro2);
// こんにちは、太郎です。25歳で、趣味は映画鑑賞です。
JavaScript- 文字列の途中に変数を挟み込むことで、柔軟な文章が作れます。
- ただし、
+が増えてくると少し読みにくくなるので、次にテンプレートリテラルを使ってみます。
テンプレートリテラル ― 読みやすくて「埋め込みやすい」書き方
バッククォート+${} で自己紹介文を作る
テンプレートリテラルは、文字列の中に変数や式を埋め込みやすくするための書き方です。
- 文字列をバッククォート(\`)で囲む
- 埋め込みたい部分を
${ ... }で書く
// テンプレートリテラルで自己紹介文を作る例です
const name = "太郎";
const age = 25;
const hobby = "映画鑑賞";
const city = "東京";
// 読みやすい自己紹介文
const intro = `こんにちは、${name}です。${age}歳で、${city}に住んでいます。趣味は${hobby}です。`;
console.log(intro);
// こんにちは、太郎です。25歳で、東京に住んでいます。趣味は映画鑑賞です。
JavaScriptテンプレートリテラルの良さは、
+を何度も書かなくてよい- 改行をそのまま書ける
- 計算結果などもそのまま埋め込める
という点です。
const birthYear = 1999;
const currentYear = 2024;
const age = currentYear - birthYear;
const introWithCalc = `こんにちは、${name}です。生まれ年は${birthYear}で、今は${age}歳です。`;
console.log(introWithCalc);
JavaScript.length ― 自己紹介文の「長さ」をチェックする
文字数を調べて、メッセージを変える
.length は、文字列の「長さ」(文字数)を教えてくれるプロパティです。 自己紹介文が長すぎるかどうかをチェックする、といった使い方ができます。
const intro = `こんにちは、太郎です。25歳で、東京に住んでいます。趣味は映画鑑賞です。`;
console.log(intro.length); // 自己紹介文の文字数が表示されます
JavaScript自己紹介文が長すぎる場合に、注意メッセージを出す例です。
if (intro.length > 50) {
console.log("自己紹介文が少し長めです。もう少し短くしてもよいかもしれません。");
} else {
console.log("自己紹介文の長さはちょうどよさそうです。");
}
JavaScript.length は、ユーザー名やパスワードの長さチェックにも使えますが、ここでは「自己紹介文の長さを意識する」練習として使ってみます。
文字列メソッド ― 自己紹介に使う文字列を整える
自己紹介文ジェネレーターでは、入力された文字列を少し整えると、見た目がきれいになります。 ここでは、よく使う文字列メソッドをいくつか紹介します。
trim() ― 前後の空白を削除
ユーザーが入力した名前や趣味の前後にスペースが入っていても、trim() で整えられます。
const rawName = " 太郎 ";
const cleanedName = rawName.trim();
console.log(cleanedName); // "太郎"
JavaScripttoUpperCase() / toLowerCase() ― 大文字・小文字をそろえる
英字の自己紹介(ニックネームなど)を扱うときに便利です。
const nickname = "taro";
console.log(nickname.toUpperCase()); // "TARO"
console.log(nickname.toLowerCase()); // "taro"
JavaScriptincludes() ― 特定の文字列が含まれているかチェック
趣味の説明文に特定のキーワードが含まれているかをチェックする、といった使い方ができます。
const hobbyDescription = "映画鑑賞と読書が好きです。";
console.log(hobbyDescription.includes("映画")); // true
console.log(hobbyDescription.includes("ゲーム")); // false
JavaScriptミニ課題:自動自己紹介文ジェネレーターを作る
ここからがDay 5のミニ課題です。 「名前・年齢・住んでいる場所・趣味・ひと言コメント」などを変数に入れて、それをもとに自己紹介文を自動生成するプログラムを作っていきます。
ステップ1:自己紹介用のデータを変数にまとめる
まずは、自己紹介に使う情報を変数として用意します。
// ==============================
// Day 5 ミニ課題:自動自己紹介文ジェネレーター
// ==============================
// 自己紹介に使う基本情報を用意します
// 名前(前後にスペースが入っている想定で書いています)
const rawName = " 山田太郎 ";
// 年齢
const age = 25;
// 住んでいる場所
const city = "東京";
// 趣味(複数でもOKです)
const rawHobby = " 映画鑑賞と読書 ";
// ひと言コメント
const rawComment = " JavaScriptを勉強中です! ";
JavaScriptステップ2:文字列メソッドで入力を整える
次に、trim() などを使って、前後の空白を削除し、きれいな文字列に整えます。
// 前後の空白を削除して、きれいな文字列に整えます
const name = rawName.trim();
const hobby = rawHobby.trim();
const comment = rawComment.trim();
console.log("名前:" + name);
console.log("趣味:" + hobby);
console.log("ひと言:" + comment);
JavaScript必要に応じて、英字のニックネームなどを小文字・大文字にそろえることもできます。
ステップ3:テンプレートリテラルで自己紹介文を生成する
整えた文字列を使って、テンプレートリテラルで自己紹介文を作ります。
// テンプレートリテラルで自己紹介文を生成します
const selfIntro = `
こんにちは、${name}です。
${age}歳で、${city}に住んでいます。
趣味は${hobby}です。
${comment}
`;
console.log("=== 自動生成された自己紹介文 ===");
console.log(selfIntro);
JavaScriptここでは、改行をそのまま書いているので、コンソールに見やすい形で自己紹介文が表示されます。
ステップ4:自己紹介文の長さをチェックする
.length を使って、自己紹介文の長さをチェックしてみます。
// 自己紹介文の長さをチェックします
const introLength = selfIntro.length;
console.log("自己紹介文の文字数:" + introLength);
if (introLength > 80) {
console.log("自己紹介文が少し長めです。もう少し短くしてもよいかもしれません。");
} else {
console.log("自己紹介文の長さはちょうどよさそうです。");
}
JavaScriptここでは、80文字を目安に「長めかどうか」を判定していますが、値は自由に変えて構いません。
ステップ5:趣味の内容に応じてメッセージを変える(おまけ)
文字列メソッドの includes() を使って、趣味に特定のキーワードが含まれているかどうかでメッセージを変えてみます。
// 趣味の内容に応じてメッセージを変えてみます
if (hobby.includes("映画")) {
console.log("映画がお好きなんですね!最近観たおすすめ作品があれば教えてください。");
}
if (hobby.includes("読書")) {
console.log("読書がお好きなんですね!好きなジャンルは何でしょう?");
}
if (!hobby.includes("映画") && !hobby.includes("読書")) {
console.log("ユニークな趣味をお持ちですね!ぜひ詳しく教えてください。");
}
JavaScriptこのように、文字列の内容に応じてメッセージを変えることで、「ちょっと賢い自己紹介ジェネレーター」になります。
練習用テンプレートコード ― そのまま貼って遊べる自己紹介ジェネレーター
最後に、Day 5の内容をまとめた練習用テンプレートを用意します。 ブラウザのコンソールにそのまま貼り付けて、名前や趣味などを自由に書き換えながら遊んでみてください。
// ==============================
// Day 5:自動自己紹介文ジェネレーター テンプレート
// ==============================
// 1. 自己紹介用のデータを用意する
const rawName = " 山田太郎 "; // 前後にスペースが入っていてもOK
const age = 25;
const city = "東京";
const rawHobby = " 映画鑑賞と読書 ";
const rawComment = " JavaScriptを勉強中です! ";
// 2. 文字列メソッドで入力を整える
const name = rawName.trim();
const hobby = rawHobby.trim();
const comment = rawComment.trim();
console.log("=== 整形後のデータ ===");
console.log("名前:" + name);
console.log("年齢:" + age);
console.log("住んでいる場所:" + city);
console.log("趣味:" + hobby);
console.log("ひと言:" + comment);
// 3. テンプレートリテラルで自己紹介文を生成する
const selfIntro = `
こんにちは、${name}です。
${age}歳で、${city}に住んでいます。
趣味は${hobby}です。
${comment}
`;
console.log("=== 自動生成された自己紹介文 ===");
console.log(selfIntro);
// 4. 自己紹介文の長さをチェックする
const introLength = selfIntro.length;
console.log("自己紹介文の文字数:" + introLength);
if (introLength > 80) {
console.log("自己紹介文が少し長めです。もう少し短くしてもよいかもしれません。");
} else {
console.log("自己紹介文の長さはちょうどよさそうです。");
}
// 5. 趣味の内容に応じてメッセージを変える(おまけ)
console.log("=== 趣味に応じたメッセージ ===");
if (hobby.includes("映画")) {
console.log("映画がお好きなんですね!最近観たおすすめ作品があれば教えてください。");
}
if (hobby.includes("読書")) {
console.log("読書がお好きなんですね!好きなジャンルは何でしょう?");
}
if (!hobby.includes("映画") && !hobby.includes("読書")) {
console.log("ユニークな趣味をお持ちですね!ぜひ詳しく教えてください。");
}
JavaScriptこのテンプレートをベースに、
rawName・rawHobby・rawCommentを自分の情報に変える- 自己紹介文のフォーマット(文章)を自分好みにアレンジする
- 趣味のキーワードを増やして、メッセージのバリエーションを増やす
といった練習をすると、「文字列を使って人に伝えるコード」がぐっと身近に感じられるようになります。
セキュリティ視点のひとこと
自己紹介文ジェネレーターのような小さなプログラムでも、「文字列をどう扱うか」はセキュリティの観点でとても重要です。
- 入力値の前後の空白や表記ゆれを正しく処理しないと、意図しない判定になる
- 文字列のチェックが甘いと、不正な値がシステムに入り込むきっかけになる
Day 5の段階から、「文字列を整える」「内容をチェックする」という意識を持ってコードを書くクセをつけておくと、後々セキュアなアプリケーションを作りやすくなります。
Day 5のまとめ ― 自己紹介をコードに任せる楽しさ
Day 5では、次のポイントを押さえました。
+で文字列を連結して、自己紹介文を組み立てられること- テンプレートリテラル(\
…\と${})で、読みやすく柔軟な自己紹介文を作れること .lengthで自己紹介文の長さをチェックできることtrim・includesなどの文字列メソッドで、入力を整えたり内容を判定したりできること- ミニ課題として、「自動自己紹介文ジェネレーター」をコンソール上で動かしたこと
文字列操作を覚えると、コードが「数字をいじるだけのもの」から、「自分の言葉を表現するもの」に変わっていきます。 今日のうちに、いろいろな自己紹介パターンを試しながら、「コードで自分を紹介する」楽しさを味わってみてください。
