🗂
【JavaScrpipt】文字列操作
const string = prompt('メッセージを入力');
console.log(string.length); // 文字の長さを取得。配列に似ているが異なるので、forEachなどは使えない
console.log(string[0]); // 何番目かの文字を取得
// string[0] = 'w'; // ※文字列の[]は読み取り専用なのでこれはエラーになる。
const string = prompt('英語で吉岡を入力');
// 大文字、小文字を区別しないために、toUpperCase()
// 空白の有無で区別しないために、空白を削除するtrim()
if (string.toUpperCase().trim() === 'YOSHIOKA') {
console.log('吉岡!');
} else {
console.log('違う!');
}
const emails = [
'yoshioka@example.com',
'k-yoshioka@example.com',
'takahashi@example.com',
];
emails.forEach((email) => {
if (email.includes('yoshioka') === true) { // yoshiokaを含む
console.log(email);
}
if (email.indexOf('yoshioka') === 0) { // 0の位置(最初)からyoshiokaが始まる場合
console.log(email);
}
if (email.startsWith('yoshioka') === true) { // yoshiokaから始まる場合
console.log(email);
}
console.log(email.slice(0, 4)); // 第1引数から、第2引数までのインデックスを取り出す
const loc = email.indexOf('@'); // @の位置までの数を代入
console.log(email.slice(0, loc)); // @の前までを取り出す
// console.log(email.substring(0, loc)); // substring()もほぼ同じ機能
console.log(email.replace('@example.com', '')); // 第1引数を第2引数に置き換える(ことで@以降を削除する)
console.log(email.replaceAll('aaa', '')); // 第1引数が複数ある場合は全てを第2引数に置き換える
const items = email.split('@'); // splitで@の前後で配列化
console.log(items[0]); // 配列の1つ目(@の前)を表示
});
const counts = [1, 32, 42, 34];
counts.forEach((count) => {
const bar = '*'.repeat(count); // 引数の数だけ文字列を繰り返す
// 下記と同じ結果となる命令
// let bar = '';
// for (let i = 0; i < count; i++) {
// bar += '*';
// }
// padStart()は文字列にのみ使える。第1引数の文字数で表示。文字数が満たなかったら第2引数の文字で前を埋める
const label = String(count).padStart(2, ' '); // ' 2'
// padEnd()は文字列にのみ使える。第1引数の文字数で表示。文字数が満たなかったら第2引数の文字で後ろを埋める
const label = String(count).padEnd(2, ' '); // '2 '
console.log(`${label}: ${bar}`);
});
Discussion